cycool29's blog



“Software and cathedrals are much the same — first we build them, then we pray.”

Subscribe via RSS

Subscribe via Email

30 March 2022

Understanding __init__ Method in Python

Read on Medium

Read on Dev.to

2 mins read

by cycool29


Table of Contents


Whenever we have Object-Oriented Programming in Python, we mostly come across __init__ method which we usually don’t fully understand.

Today, programmers are bound to come across Object-Oriented Programming (OOP) during their career. As a modern and popular programming language, Python provides all the means to implement the object-oriented philosophy. The __init__ method is at the core of Object-Oriented Programming and is one of the essential parts to create objects.

What is Object-Oriented Programming? 🧐

Before looking at __init__, it’s very helpful if we have the idea of what is Object-Oriented Programming (OOP).

Object Oriented programming (OOP) is a programming paradigm that relies on the concept of classes and objects. It is used to structure a software program into simple, reusable pieces of code blueprints (usually called classes), which are used to create individual instances of objects.

An object is a collection of complex variables and functions and can be used to represent real entities like a button, an airplane, or a person. To declare, initialize, and manipulate objects in Python, we use classes. They serve as templates from which objects are created.

Now the point comes... What is `__init__` method? 🤔

The __init__ method is a reseved method in Python classes. It is the Python equivalent of the C++ constructor in an object-oriented approach. When you create a new object of a class, Python automatically pass your arguments to the __init__ method and call it to initialize the object’s attributes. The __init__ method lets the class initialize the object’s attributes and serves no other purpose. It is only used within classes.

Example usecase of `__init__` method 💡

Let’s see how we can use __init__ method.

First, we create a Book class, with a simple __init__ method to initialize informations of the book and a function to print the book info.

class Book:
    def __init__(self, title, author, language):
        # Initialize book informations
        self.title = title
        self.author = author
        self.language = language
    def print_book_info(self):
        print(f'Title: {self.title}')
        print(f'Author: {self.author}')
        print(f'Language: {self.language}')

Now, we will create an object of the class.

book1 = Book(title='Harry Potter and the Sorcerer Stone', author='JK. Rowling', language='English')

When you create the object above, __init__ method was called and initialized the book infos. To prove that, let’s print the book info.

book1.print_book_info()

The output should be:

Title: Harry Potter and the Sorcerer Stone
Author: JK. Rowling
Language: English

Thanks for reading! 😎

tags: python - programming - init - beginners


Share this article:

Subscribe to our newsletter

Get the highlights in your inbox when there is a new post.

Email Address:

First Name:

Last Name: