Python Constructor: A Guide to Initializing Objects in Python
Python Constructor
A constructor is a special type of method in Python that is used to initialize the instance attributes of a class. While constructors in C++ or Java share the same name as their class, Python handles constructors differently, utilizing a method named __init__()
to serve this purpose. Constructors are essential for creating objects and ensuring they have the required resources to perform startup tasks.
Python provides two types of constructors:
- Parameterized Constructor
- Non-parameterized Constructor
Let’s dive deeper into constructors in Python, their implementation, and their practical use cases.
Complete Python Course with Advance topics:- CLICK HERE
Creating a Constructor in Python
In Python, the __init__()
method acts as the constructor. This method is automatically called when a class instance is created. The self
keyword, passed as the first argument, allows access to the class’s attributes and methods.
You can pass multiple arguments to the __init__()
method depending on the initialization needs of the class. Even if you don’t define a constructor, Python provides a default one.
Example: Parameterized Constructor
class Employee:
def __init__(self, name, id):
self.name = name
self.id = id
def display(self):
print(f"ID: {self.id}\nName: {self.name}")
emp1 = Employee("John", 101)
emp2 = Employee("David", 102)
emp1.display()
emp2.display()
Output:
ID: 101
Name: John
ID: 102
Name: David
Counting the Number of Objects in a Class
Since the constructor is automatically called during object creation, it can be used to count the total number of objects created.
Example:
class Student:
count = 0
def __init__(self):
Student.count += 1
s1 = Student()
s2 = Student()
s3 = Student()
print("The number of students:", Student.count)
Output:
The number of students: 3
Non-Parameterized Constructor
A non-parameterized constructor does not accept additional arguments other than self
. It’s useful when there’s no need to initialize attributes with specific values.
Example:
class Student:
def __init__(self):
print("This is a non-parameterized constructor")
def show(self, name):
print(f"Hello, {name}")
student = Student()
student.show("John")
Output:
This is a non-parameterized constructor
Hello, John
Parameterized Constructor
A parameterized constructor allows passing arguments to initialize instance attributes.
Example:
class Student:
def __init__(self, name):
print("This is a parameterized constructor")
self.name = name
def show(self):
print(f"Hello, {self.name}")
student = Student("John")
student.show()
Output:
This is a parameterized constructor
Hello, John
Default Constructor
When a constructor isn’t explicitly defined, Python provides a default constructor that initializes objects without custom logic.
Example:
class Student:
roll_num = 101
name = "Joseph"
def display(self):
print(self.roll_num, self.name)
st = Student()
st.display()
Output:
101 Joseph
Multiple Constructors in a Class
In Python, if multiple constructors are defined, only the last one is retained. Constructor overloading is not allowed.
Example:
class Student:
def __init__(self):
print("The first constructor")
def __init__(self):
print("The second constructor")
st = Student()
Output:
The second constructor
Python Built-in Class Functions
Python provides several built-in functions to work with object attributes.
Function | Description |
---|---|
getattr(obj, name) |
Accesses the attribute of an object. |
setattr(obj, name, value) |
Sets a specific attribute to a particular value. |
delattr(obj, name) |
Deletes a specific attribute. |
hasattr(obj, name) |
Checks if an object contains a specific attribute. |
Example:
class Student:
def __init__(self, name, id, age):
self.name = name
self.id = id
self.age = age
s = Student("John", 101, 22)
print(getattr(s, 'name'))
setattr(s, "age", 23)
print(getattr(s, 'age'))
print(hasattr(s, 'id'))
delattr(s, 'age')
# The following line will raise an AttributeError
# print(s.age)
Output:
John
23
True
AttributeError: 'Student' object has no attribute 'age'
Python Built-in Class Attributes
Python classes include several built-in attributes that provide information about the class itself.
Attribute | Description |
---|---|
__dict__ |
Dictionary with the class’s namespace. |
__doc__ |
Documentation string for the class. |
__name__ |
Name of the class. |
__module__ |
Module in which the class is defined. |
__bases__ |
Tuple containing all base classes of the class. |
Example:
class Student:
def __init__(self, name, id, age):
self.name = name
self.id = id
self.age = age
s = Student("John", 101, 22)
print(s.__doc__)
print(s.__dict__)
print(s.__module__)
Output:
None
{'name': 'John', 'id': 101, 'age': 22}
__main__
Python Classes and Objects: A Guide to Mastering Object-Oriented Programming |
https://updategadh.com/python/python-classes-and-objects/ |
Python OOPs Concepts: A Complete Guide |
https://updategadh.com/python/python-oops-concepts-a-complete-guide/ |
Finding the Second Largest Number in Python |
https://updategadh.com/python/finding-the-second-largest-number/ |
Python SimpleImputer Module: A Comprehensive Guide |
https://updategadh.com/python/python-simpleimputer-module/ |
Python OpenCV Object Detection: A Step-by-Step Guide |
https://updategadh.com/python/python-opencv-object-detection/ |
Download New Real Time Projects :-Click here
class and object in python example
python class example
what is object in python
what is class in python
python class function
what is object in python with example
python class(object) vs class
python class inheritance
python constructor
python constructor overloading
dataclass python constructor
python constructor class
python constructor default values
python constructor vs initializer
python constructor optional arguments
python constructor example
python constructor arguments
python constructor and destructor example
python constructor and destructor
python constructor args
Post Comment