×

Python Constructor

Introduction

A constructor is defined as the special kind of function or method that is used for instance variables initialization during the creation of an object of a class.

The constructor's task is to assign values(initialize) to the instance members of the class when a class object is created. 

Creating a constructor:

The __init__ method or function is used for creating a constructor of the class and it is also used when an object is created.

As a first argument, it takes the self-keyword which allows accessing the methods and attributes of the class. Initializing the attributes of a class is the most common use of constructor in Python.

Any number of arguments can be passed at the time of creating an object of a class, once the __init__() function is defined. Each class is required to have a constructor, still if it just relies on the default constructor.

Syntax:

def __init__(self):

    # body

Example:

class DummyClass:

    # constructor

    def __init__(self):

        # initializing instance variable

        self.num=200

    # a method

    def read_number(self):

        print(self.num)

# creating object of the class

obj = DummyClass()

# using obj to call the instance method

obj.read_number()

Output:

200

Explanation: In the above example, we have defined how to create a constructor in Python.

Constructors are divided into two types:

  1. Default constructer.
  2. Parametrized constructer.

1. Non-parameterized constructor:

The non-parameterized constructor can be defined as a simple constructor or default constructor.

  • It doesn’t accept any arguments. 
  • This constructor has no parameter exist so, it is called non parametrized constructor or default constructor. 
  • Its definition has only one argument and it works as a reference to the instance being constructed. 
  • It takes only self-reference.
  • When each class object requires to be initialized with the same values, this constructor is very useful at that time.

Example 1:

class JavaTpoint:

    # default constructor

    def __init__(self):

        self.Java = "JavaTpoint"

    # a method for printing data members

    def print_Java(self):

        print(self.Java)

# creating object of the class

obj = JavaTpoint()

# calling the instance method using the object obj

obj.print_Java()

Output:

JavaTpoint

Example 2:

class Person:

#Constructor - non parameterized

def __init__(self):

print("This constructor is non parametrized")

def show(self,name):

print("Hello",name)

person = Person()

person.show("EDDY")

Output:

This constructor is non parametrized

Hello EDDY

2. Parameterized Constructor:

constructor which contains parameters is referred to as a parameterized constructor.

  • The parameterized constructor uses its first argument as a reference to the instance being created called as self and the Programmer provides the rest of the arguments. 
  • The parameterized constructor has many parameters onward with the self. 
  • Parameterized Constructors are the constructor with arguments. 
  • A parameterized constructor can have several arguments.

Example 1:

class Person:

#parameterized constructer

def __init__(self, name):

print("This constructor is parametrized")

self.name = name

def show(self):

print("Hello",self.name)

person = Person("EDDY")

person.show()

Output:

This constructor is parametrized

Hello EDDY

Example 2:

Class Substraction:

    first = 0

    second = 0

    answer = 0

    # parameterized constructor

    def __init__(self, f, s):

        self.first = f

        self.second = s

    def display(self):

        print("First number = " + str(self.first))

        print("Second number = " + str(self.second))

        print("Substraction of number = " + str(self.answer))

    def calculate(self):

        self.answer = self.first - self.second

# creating object of the class

# this will invoke parameterized constructor

obj = Substraction(5000, 3000)

# perform substraction

obj.calculate()

# display result

obj.display()

Output:

First number = 5000

Second number = 3000

Substraction of numbers = 2000

Multiple constructors in a single class

Python does not provide constructor overloading. let's see what happens when we provide it, two constructors.

Example:

class Demo:

def __init__(self):

print("First constructor")

def __init__(self):

print("Second constructor")

    d= Demo()

Output:

Second constructor

Explanation: In the above code, the second constructor is called by the object d whether both have the same specification. The first function is not accessible by the object d. 

Generally, if the class has more than one constructor, then always the last constructor is called by the object of the class. 

When the constructor is not declared

When the constructor is not defined Python provides a default constructor and it instantiates the object.

Example:

class demo:

def show(self):

print("This is a default constructor :)")

>>> d=demo()

>>> d.show()

Output:

This is a default constructor 

Built-in class functions in Python

Here, Various built-in functions in the class exist in Python. Following are the built-in class functions in Python.

  1. getattr(obj,name,default): This built-in function provides access to the attribute of the object.
  2. delattr(obj, name): This function is used to delete a particular class attribute.
  3. setattr(obj, name,value): This function is used, when there is a need to set a specific value to a specific attribute of an object.
  4. hasattr(obj, name): This function returns true if a particular object carries some specific attribute.

Example:

class Employee:

def __init__(self,name,id,age):

self.name = name;

self.id = id;

self.age = age

#creates the object of the class Employee

emp = Employee("EDDY",121,33)

#prints the attribute name of the object s

print(getattr(emp,'name'))

# reset the value of attribute age to 34

setattr(emp,"age",34)

# prints the modified value of age

print(getattr(emp,'age'))

# prints true if the Employee contains the attribute with name id

print(hasattr(emp,'id'))

# deletes the attribute age

delattr(emp,'age')

# this will give an error since the attribute age has been deleted

print(emp.age)

Output:

EDDY

34

True

AttributeError: 'Employee' object has no attribute 'age'

Built-in class attributes in Python

Python also contains built-in class attributes along with built-in class functions. Below are some built-in class attributes in Python.

  1. __dict__: This attributes returns the dictionary that contains some information concerning the class namespace.  
  2. __name__: This attribute is used to returns the current class name.
  3. __doc__: This attribute carries a string, which has the current class documentation.
  4. __module__: We can access the module in which the class is defined.
  5. __bases__: This attribute contains a tuple in which all base classes are included.

Example:

class Employee:    

    def __init__(self,name,id,age):   

        self.name = name;   

        self.id = id;   

        self.age = age   

    def display_details(self):   

        print("Name:%s, ID:%d, age:%d"%(self.name,self.id))   

emp = Employee("EDDY",121,33)   

print(s.__doc__)   

print(s.__dict__)   

print(s.__module__) 

Output:

None

{'name': 'EDDY', 'id': 121, 'age': 33}

__main__

Conclusion

In this article, we have discussed constructors and types of constructors in Python such as parameterized and non-parameterized constructors. Also, We have seen different methods inside the constructors.


Related Topics

Check Palindrome in Python

Python is an object-oriented high-level programming language. Python has dynamic semantics and has high-level built-in data structures which support dynamic typing and dynamic binding. Python provides rapid development. It has...

4 minutes read.

Best books for NLP with Python

NLP NLP – Natural language processing Computers were created to make the life of mankind easier. But computers cannot understand human language. Instead, they interact with numbers to perform the tasks allotted...

12 minutes read.

Python Percentage Sign

In Python, the percentage sign significantly completes two things. They are: It goes about as a Modulo administrator. It helps in string organizing. Allow us to see every one of them plainly. Modulo operator: Like...

2 minutes read.

Python IDE names

Python is one of the most renowned programming languages. It has different execution conditions and a great many compilers to execute the python programs, e.g., PyCharm, PyDev, Jupyter Notebook, Visual...

6 minutes read.

Python math.cos and math.acos function

Math.cos() function In Python, the Math module is used for performing the mathematical operations. It includes the math.cos() function that is used for obtaining the cosine value of an angle in...

3 minutes read.

Python List remove() method

Python List remove() method The list.remove () method in Python removes the item at the specified position in the given list. Syntax list.remove(x) Parameter x: This parameter represents the element you want to remove and accepts any type...

1 minute read.

Allocate a minimum number of pages in python

You have given a sorted array of size n which represents the number of pages in n different books and an integer value which denotes the number of students. We...

4 minutes read.

Fsolve in Python

Python Programming Language Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It...

3 minutes read.

Explain sklearn clustering in Python

Make a connection and patterns across datasets by using clustering, one of the unsupervised machine learning approaches. Grouping is crucial because it ensures unlabelled data's natural clustering. The sample from...

7 minutes read.

Python format() function

Python format() function The format() function in Python formats a specified value into the given format. A ‘TypeErrorexception’ is raised if the method search reaches the object and the format_spec is non-empty, or if either the format_spec or the...

1 minute read.

Python round() function

Python round() function The round() function in Python returns a number rounded to ‘ndigits’ precision after the decimal point. If ndigits is omitted or is None, it returns the nearest integer to its input. Syntax round(number[, ndigits]) Parameter Number: This parameter represents the...

1 minute read.

Python Infinity

Introduction We will discover how to define an infinite number in Python in this tutorial. Infinity, as we all know, is a value that cannot be defined and can either be...

5 minutes read.

How to create a list in Python?

How to create a list in python Python is known for its versatility and its data structures help us to perform different kinds of operations on various datasets irrespective of their...

4 minutes read.

Assertion Errors and Attribute Errors in Python

Assertion Error in Python In Python, the assert condition is used to continue the execution if the given statement displays true. If the assert statement displays false, it raises Assertion Error...

3 minutes read.

Python String isdigit() method

Python String isdigit() method The string.isdigit() method returns a boolean value true if all characters in the string are digits else for any other value it returns false. Syntax string.isdigit() Parameter NA Return This method returns a...

2 minutes read.

Syntax of Map function in Python

In this tutorial, we will understand what the map function in Python is meant. Further, we will see the syntax to be used for the same in python language. We...

3 minutes read.

Python Glob

Methods for matching files that include particular patterns in accordance with UNIX shell-related expansion rules are referred to as "glob" methods. Similar methods for finding, locating, and searching for all of...

12 minutes read.

Returning Multiple Values in Python

Python is considered a general-purpose programming language; it is a high-level programming language that is not much difficult and easier to learn. It is rich in libraries that can be...

3 minutes read.

Python String isalnum() method

Python String isalnum() method The string.isalnum () method in Python returns a boolean value true if all characters in the string are alphanumeric else for any other value it returns false. Syntax String.isalnum() Parameter NA Return This...

1 minute read.

An Introduction to Mocking in Python

Python Mocking is a testing library. It enables you to substitute portions of your system under test with fake(mock) objects and make assertions about how they were utilized.  The test is...

3 minutes read.