A constructor is a special type of method (function) which is used to initialize the instance members of the class.
In C++ or Java, the constructor has the same name as its class, but it treats constructor differently in Python. It is used to create an object.
Constructors can be of two types.
Constructor definition is executed when we create the object of this class. Constructors also verify that there are enough resources for the object to perform any start-up task.
In Python, the method the __init__() simulates the constructor of the class. This method is called when the class is instantiated. It accepts the self-keyword as a first argument which allows accessing the attributes or method of the class.
We can pass any number of arguments at the time of creating the class object, depending upon the __init__() definition. It is mostly used to initialize the class attributes. Every class must have a constructor, even if it simply relies on the default constructor.
Consider the following example to initialize the Employee class attributes.
Output:
ID: 101 Name: John ID: 102 Name: David
The constructor is called automatically when we create the object of the class. Consider the following example.
Output:
The number of students: 3
The non-parameterized constructor uses when we do not want to manipulate the value or the constructor that has only self as an argument. Consider the following example.
The parameterized constructor has multiple parameters along with the self. Consider the following example.
Output:
This is parametrized constructor Hello John
When we do not include the constructor in the class or forget to declare it, then that becomes the default constructor. It does not perform any task but initializes the objects. Consider the following example.
Output:
101 Joseph
Let's have a look at another scenario, what happen if we declare the two same constructors in the class.
Output:
The Second Constructor
In the above code, the object st called the second constructor whereas both have the same configuration. The first method is not accessible by the st object. Internally, the object of the class will always call the last constructor if the class has multiple constructors.
The built-in functions defined in the class are described in the following table.
| SN | Function | Description |
|---|---|---|
| 1 | getattr(obj,name,default) | It is used to access the attribute of the object. |
| 2 | setattr(obj, name,value) | It is used to set a particular value to the specific attribute of an object. |
| 3 | delattr(obj, name) | It is used to delete a specific attribute. |
| 4 | hasattr(obj, name) | It returns true if the object contains some specific attribute. |
Output:
John 23 True AttributeError: 'Student' object has no attribute 'age'
Along with the other attributes, a Python class also contains some built-in class attributes which provide information about the class.
The built-in class attributes are given in the below table.
| SN | Attribute | Description |
|---|---|---|
| 1 | __dict__ | It provides the dictionary containing the information about the class namespace. |
| 2 | __doc__ | It contains a string which has the class documentation |
| 3 | __name__ | It is used to access the class name. |
| 4 | __module__ | It is used to access the module in which, this class is defined. |
| 5 | __bases__ | It contains a tuple including all base classes. |
Output:
None
{'name': 'John', 'id': 101, 'age': 22}
__main__
We request you to subscribe our newsletter for upcoming updates.