Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
2 views

Python constructor

The document explains Python constructors, which are special methods used to initialize class instance members, with examples of parameterized, non-parameterized, and default constructors. It also discusses the concept of counting objects created from a class, the limitations of constructor overloading in Python, and built-in class functions and attributes. Additionally, it provides examples demonstrating the use of these constructors and built-in functionalities.

Uploaded by

reddisandeep92
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Python constructor

The document explains Python constructors, which are special methods used to initialize class instance members, with examples of parameterized, non-parameterized, and default constructors. It also discusses the concept of counting objects created from a class, the limitations of constructor overloading in Python, and built-in class functions and attributes. Additionally, it provides examples demonstrating the use of these constructors and built-in functionalities.

Uploaded by

reddisandeep92
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Python Constructor

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.

1. Parameterized Constructor
2. Non-parameterized Constructor

 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.

Creating the constructor in python


 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.

Example

1. class Employee:
2. def __init__(self, name, id):
3. self.id = id
4. self.name = name
5.
6. def display(self):
7. print("ID: %d \nName: %s" % (self.id, self.name))
8.
9.
10. emp1 = Employee("John", 101)
11. emp2 = Employee("David", 102)
12.
13. # accessing display() method to print employee 1 information
14.
15. emp1.display()
16.
17. # accessing display() method to print employee 2 information
18. emp2.display()

Output:

ID: 101
Name: John
ID: 102
Name: David
Counting the number of objects of a class
The constructor is called automatically when we create the object of the
class. Consider the following example.

Example

1. class Student:
2. count = 0
3. def __init__(self):
4. Student.count = Student.count + 1
5. s1=Student()
6. s2=Student()
7. s3=Student()
8. print("The number of students:",Student.count)

Output:

ADVERTISEMENT

The number of students: 3


Python Non-Parameterized Constructor
 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.

Example

1. class Student:
2. # Constructor - non parameterized
3. def __init__(self):
4. print("This is non parametrized constructor")
5. def show(self,name):
6. print("Hello",name)
7. student = Student()
8. student.show("John")

Python Parameterized Constructor


 The parameterized constructor has multiple parameters along with
the self.

Consider the following example.

Example

1. class Student:
2. # Constructor - parameterized
3. def __init__(self, name):
4. print("This is parametrized constructor")
5. self.name = name
6. def show(self):
7. print("Hello",self.name)
8. student = Student("John")
9. student.show()
Output:

This is parametrized constructor


Hello John

Python Default Constructor


 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.

Example

1. class Student:
2. roll_num = 101
3. name = "Joseph"
4.
5. def display(self):
6. print(self.roll_num,self.name)
7.
8. st = Student()
9. st.display()

Output:

101 Joseph

More than One Constructor in Single class


Let's have a look at another scenario, what happen if we declare the two
same constructors in the class.

Example

1. class Student:
2. def __init__(self):
3. print("The First Constructor")
4. def __init__(self):
5. print("The second contructor")
6.
7. st = Student()

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.

Note: The constructor overloading is not allowed in Python.

Python built-in class functions


The built-in functions defined in the class are described in the following
table.

SN Function Description

1 getattr(obj,name,def It is used to access the attribute of the object.


ault)

2 setattr(obj, It is used to set a particular value to the specific


name,value) 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.

Example
1. class Student:
2. def __init__(self, name, id, age):
3. self.name = name
4. self.id = id
5. self.age = age
6.
7. # creates the object of the class Student
8. s = Student("John", 101, 22)
9.
10. # prints the attribute name of the object s
11. print(getattr(s, 'name'))
12.
13. # reset the value of attribute age to 23
14. setattr(s, "age", 23)
15.
16. # prints the modified value of age
17. print(getattr(s, 'age'))
18.
19. # prints true if the student contains the attribute with name id
20.
21. print(hasattr(s, 'id'))
22. # deletes the attribute age
23. delattr(s, 'age')
24.
25. # this will give an error since the attribute age has been deleted
26. print(s.age)

Output:

John
23
True
AttributeError: 'Student' object has no attribute 'age'

Built-in class attributes


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.

Example

1. class Student:
2. def __init__(self,name,id,age):
3. self.name = name;
4. self.id = id;
5. self.age = age
6. def display_details(self):
7. print("Name:%s, ID:%d, age:%d"%(self.name,self.id))
8. s = Student("John",101,22)
9. print(s.__doc__)
10. print(s.__dict__)
11. print(s.__module__)

Output:

None
{'name': 'John', 'id': 101, 'age': 22}
__main__

You might also like