__init__ in Python
Last Updated :
20 Dec, 2023
__init__ method in Python is used to initialize objects of a class. It is also called a constructor.
To completely understand the concept of __init__ method, you should be familiar with:
Prerequisites – Python Class and Objects, Self
What is __init__ in Python?
__init__ method is like default constructor in C++ and Java. Constructors are used to initialize the object’s state.
The task of constructors is to initialize(assign values) to the data members of the class when an object of the class is created.
Like methods, a constructor also contains a collection of statements(i.e. instructions) that are executed at the time of Object creation. It is run as soon as an object of a class is instantiated.
The method is useful to do any initialization you want to do with your object.
Python3
class Person:
def __init__( self , name):
self .name = name
def say_hi( self ):
print ( 'Hello, my name is' , self .name)
p = Person( 'Nikhil' )
p.say_hi()
|
Output:
Hello, my name is Nikhil
Understanding the code
In the above example, a person named Nikhil is created. While creating a person, “Nikhil” is passed as an argument, this argument will be passed to the __init__ method to initialize the object.
The keyword self represents the instance of a class and binds the attributes with the given arguments. Similarly, many objects of the Person class can be created by passing different names as arguments.
Below is the example of __init__ in Python with parameters
Example of __init__ method in Python
Let’s look at some examples of __init__ method in Python.
Python3
class Person:
def __init__( self , name):
self .name = name
def say_hi( self ):
print ( 'Hello, my name is' , self .name)
p1 = Person( 'Nikhil' )
p2 = Person( 'Abhinav' )
p3 = Person( 'Anshul' )
p1.say_hi()
p2.say_hi()
p3.say_hi()
|
Output:
Hello, my name is Nikhil
Hello, my name is Abhinav
Hello, my name is Anshul
__init__ Method with Inheritance
Inheritance is the capability of one class to derive or inherit the properties from some other class. Let’s consider the below example to see how __init__ works in inheritance.
Python3
class A( object ):
def __init__( self , something):
print ( "A init called" )
self .something = something
class B(A):
def __init__( self , something):
A.__init__( self , something)
print ( "B init called" )
self .something = something
obj = B( "Something" )
|
Output:
A init called
B init called
So, the parent class constructor is called first. But in Python, it is not compulsory that the parent class constructor will always be called first.
The order in which the __init__ method is called for a parent or a child class can be modified. This can simply be done by calling the parent class constructor after the body of the child class constructor.
Example:
Python3
class A( object ):
def __init__( self , something):
print ( "A init called" )
self .something = something
class B(A):
def __init__( self , something):
print ( "B init called" )
self .something = something
A.__init__( self , something)
obj = B( "Something" )
|
Output:
B init called
A init called
Read: Inheritance in Python
We have covered __init__ in Python, discussed how to use __init__, and also saw some examples of using __init__ method in Python.
Constructor is a crucial concept in OOPs, and __init__ method is very similar to constructors.
Hope this article helped you in learning __init__ method, and you will be able to use it in your projects.
Related Article
Please Login to comment...