PCAP __init__ method Practice Question
Which THREE of the following are true about the `__init__` method in Python?
⚠ Common exam trap
A common trap is thinking that __init__ cannot be called manually or that it is the constructor (it is an initializer; __new__ is the constructor). Also, some believe __init__ must return a value, but it must return None.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
It can be called manually.
The __init__ method is a special method in Python classes used for initializing newly created objects. It can be called manually (e.g., obj.__init__()), it accepts arguments that are passed during instance creation, and it is automatically invoked when an instance is created via the class constructor. It does not require a return value (it returns None), and it is inherited by subclasses unless explicitly overridden.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
It can be called manually.
Why this is correct
Although __init__ is invoked automatically during instance creation, it is also an ordinary method and can be called manually on an existing instance, such as obj.__init__(new_args). This manually calls the initializer to reset or reinitialize the object's attributes, which can be useful for object reuse or unit testing. The ability to call it manually does not interfere with its automatic invocation; both can coexist. Thus, the statement is true.
- ✗
It must return a value.
Why it's wrong here
The __init__ method must not return a value; its implicit return is always None. Attempting to return any non-None object from __init__ causes Python to raise a TypeError. This is because __init__ is responsible for initializing the newly created instance, not for producing the instance itself—that job belongs to __new__. Therefore, requiring __init__ to return a value is incorrect.
- ✓
It can accept arguments.
Why this is correct
The __init__ method can accept arguments beyond the mandatory self parameter, and these arguments are forwarded from the constructor call, e.g., MyClass(x, y) passes x and y to __init__. This enables per-instance configuration by allowing you to set initial attribute values based on the provided parameters. The method may also define default values, *args, or **kwargs to make argument handling flexible. Hence, accepting arguments is a true and essential aspect of __init__.
- ✗
It is not inherited.
Why it's wrong here
The __init__ method is inherited from a superclass; if a subclass does not define its own __init__, the parent's initializer will automatically be called when the subclass creates an instance. However, if a subclass defines its own __init__, the parent's is not automatically run unless the subclass calls super().__init__() explicitly. This behavior is a form of method inheritance, so the claim that __init__ is not inherited is categorically false.
- ✓
It is called automatically when an instance is created.
Why this is correct
When an instance is created by calling MyClass(...), the runtime first invokes __new__ to allocate the object, and then automatically invokes __init__ on that new object with the constructor's arguments. This automatic call is a fundamental part of Python's object creation protocol, so you never need to explicitly invoke __init__ to initialize an instance. The method's name, __init__, reflects its role as the automatic initializer. Therefore, this statement is correct.
Go deeper
Related to this question
About these practice questions
One of 169 original PCAP practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PCAP practice question is part of Courseiva's free Python Institute certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PCAP exam.