A constructor is a unique function that gets called automatically when an object is created in a class. The main purpose of constructors in python is to initialize or assign values to the data members of that class. It cannot return any value other than none.
The primary purpose of a constructor is to create an instance of an object. Constructors are called whenever an object of a particular class is created, and their job is to initialize (assign values to) the data members of that class. The __init__() method, often known as the constructor in Python, is invoked at object creation time.
Let’s see how to use the constructor.
Syntax of Python Constructor
def __init__(self):
# initializations
Init is one of the reserved functions in Python. In object-oriented programming, it is known as a constructor.
Rules of Python Constructor
It starts with the def keyword, like all other functions in Python.
Following it is the word init, which has double underscores as its prefix and suffix along with a pair of brackets, i.e., __init__().
It takes an argument called self, and assigning values to the variables is a reference to the current instance of the class. It is created and passed automatically or implicitly to __init__() when the constructor is called.
Types of Constructors in Python
Parameterized Constructor
Non-Parameterized Constructor
Default Constructor
1. Parameterized Constructor in Python
When the constructor accepts arguments along with itself, it is known as a parameterized constructor.
These arguments can be used inside the class to assign values to the data members. Let’s see an example:
Code:
class Family:
# Constructor – parameterized
members=5
def __init__(self, count):
print(“This is parametrized constructor”)
self.members = count
def show(self):
print(“No. of members is”, self.members)
object = Family(10)
object.show()
Output:
This is parameterized constructor
No. of members is 10
Explanation
An object of the class Family is created. It has a variable known as members.
When the object is created, a parameter (here it is 10) is passed as an argument.
This parameter (10, as in the above example) is taken up by the constructor as the object is created.
The number 10 is assigned to the variable count, which is further assigned to the self-members.
The self-members can be used within the class to print the data.
2. Non-Parameterized Constructor in Python
When the constructor doesn’t accept any arguments from the object and has only one argument, self, in the constructor, it is known as a non-parameterized constructor.
This can be used to re-assign a value inside the constructor. Let’s see an example:
Code:
class Fruits:
favourite = “Apple”
# non-parameterized constructor
def __init__(self):
self.favourite = “Orange”
# a method
def show(self):
print(self.favourite)
# Creating an object of the class
obj = Fruits()
# calling the instance method using the object obj
obj.show()
Output:
Orange
Explanation:
In the above example, we initialise our favourite fruit as “orange” inside the class. But we want to change it as soon as the object is created.
Re-assigning the value to the constructor will accomplish this. This type of constructor doesn’t take any other argument other than self. It can be used to print and check whether our value has changed.
3. Default Constructor in Python
When you do not write the constructor in the class you create, Python itself creates a constructor during the compilation of the programme.
It generates an empty constructor that has no code in it. Let’s see an example:
Example
class Assignments:
check= “not done”
# a method
def is_done(self):
print(self.check)
# Creating an object of the class
obj = Assignments()
# calling the instance method using the object obj
.is_done()
Output
not done
Explanation
In the above example, we check whether our assignment is done. We create an object of a class where we do not write the constructor.
Python generates a constructor when we do not provide any to initialise the instance variables. It does nothing.
Conclusion
The constructor is a method called when an object is created in a class.
The creation of the constructors in python depends on the programmer, or else Python will automatically generate the default.