The constructor is the method that runs when you make an object. In Python that is __init__.
You use it to set up the attributes the object needs, so the object is ready the moment it exists.
What is a Constructor?
- A constructor is a unique method associated with a class, automatically invoked upon the creation of an object from that class.
- It’s crucial for initializing object properties and executing any startup procedures required for the object.
- Essentially, it’s a tool that aids in avoiding repetitive code and ensures that an object is in a valid state right after its creation.
How Does It Work?
Consider the following code, where the constructor initializes user details:
Without a constructor, this initialization would be cumbersome:
user1.name = 'Alice' |
Key Points about Constructors:
- A class must have only one constructor.
- In Python, the constructor method is always named
def __init__(self):. - It’s imperative to understand and use constructors efficiently to leverage the power of OOP in Python.

Constructor Rules in Python
- Must be named
__init__. - Always define it with the
selfparameter, which refers to the object being created. - It shouldn’t return any value other than
None. - Remember, only one constructor is permissible in a class.
- Its primary use is for initializing object properties.
A Practical Example
The syntax for defining a constructor within a class:
class Example: |
When you create an instance of the Example class, the constructor gets executed:
obj1 = Example() # constructor is triggered |
A more illustrative example:
class Computer: |
Here, every object gets unique properties when instantiated, reflecting the real-world entities they represent.
apple = Computer('Apple', 100) |
Visual Representation
In this example, class C possesses a constructor and a method named see. Notice the constructor’s name: __init__.
class C: |
What’s unique about the constructor is its automatic execution upon object instantiation:
obj = C() # This line prompts the output: Constructor activated. |
It’s evident from the output sequence that the constructor gets called immediately when an object is instantiated.

Real-world Analogy
Picture the constructor as a blueprint for a vehicle, like a car. This blueprint specifies default properties, such as the number of wheels or doors.
class Car: |
Objects made using this blueprint will inherently possess the above properties:
obj1 = Car() |
Varieties of Constructors
Python offers two kinds of constructors:
Default Constructor: It doesn’t require any parameters.
class MyClass:
def __init__(self):
...Parameterized Constructor: This accepts one or more parameters.
class MyClass:
def __init__(self, x, y, w, h):
...
A default constructor is beneficial for initializing default values or calling specific initialization methods. Without it, there’s no way to set parameters or invoke methods during object creation.
Embracing constructors will streamline your coding efforts, promote efficient programming, and ensure objects are always in a consistent, predictable state.
The fastest way to learn this is to write it yourself. The PyChallenge exercises run in your browser, no install needed.

