__init__ in Python

As we journey through the arena of Python, we regularly come across factors of the language that permits us to express our thoughts and intentions extra intuitively. One such detail is the init approach, a powerful constructor method that brings our custom training to existence. In this post, we'll explore the inner workings of Python's init method, illuminating its key position in initializing our custom instructions and respiratory lifestyles into our code.

The Birth of Objects: The Init Method

When we create a new instance of a custom class, Python invokes a unique method known as init to initialize the object's state. The init technique, also called the constructor method, permits us to define the initial setup and configuration of our objects, ensuring they may be born with the preferred state and behavior.

The init technique is simply one of Python's many "magic methods" or "dunder" methods (short for "double underscore"), which are methods with double underscores at the start and end of their names. These magic methods enable us to outline how our lessons ought to behave in unique conditions, making them greater expressive and flexible.

Let’s have a look at a instance of a simple custom class known as Person with an init method −

Step 1  To represent a person with a name and an age, define the Person class.

Step 2  Implement the __init__ approach in the Person class. This method takes two parameters: name and age. The __init__ method is answerable for initializing the object's state via setting its attributes.

Step 3  Inside the __init__ method, assign the input name and age to the instance's name and age attributes using the self keyword. The self keyword refers to the instance of the class and allows us to set and access its attributes.

Step 4  Create a new instance of the Person class by calling it with the required arguments: "Alice" for the name and 30 for the age. The __init__ technique is routinely known as while a new instance is created, initializing the object's name and age attributes.

Step 5 − Print the name and age attributes of the Person instance using the dot notation. The output will show "Alice" for the name and 30 for the age, thanks to the __init__ method that initializes the object with the provided values.


class Person:
   def __init__(self, name, age):
      self.name = name
      self.age = age

p = Person("Alice", 30)
print(p.name)  # Output: Alice



Best Practices for Init Methods

To make the most of Python's init method and your custom classes, follow these best practices −

  • Keep it simple  The init method should focus on setting up the initial state of your objects. Avoid complex calculations or side effects in the constructor, as this can make your code harder to understand and maintain.

  • Use clear and descriptive parameter names  When defining your init technique, use clean and descriptive names for input parameters. This will make your code greater readable and less difficult to recognize.

  • Set default values for non-compulsory parameters  If your constructor takes non-obligatory parameters, provide default values for them, making it less complicated for users to create instances of your class without mentioning all of the parameters.

  • Ensure consistent behavior  If your class has multiple constructors or factory methods, ensure they produce consistent results when creating new instances.

  • Document your init method  Write clear and concise docstrings to your init technique, explaining what the method does, what parameters it takes, and what it returns. This will make your code less complicated to use and recognize.


In this article, we've gone through Python's init constructor method, uncovering its crucial function in initializing custom classes and bringing our code to life. By following the best practices we've discussed, you can harness the power of the init method to create expressive, intuitive, and human-friendly custom classes that breathe life into your code, fostering a deeper connection between you, your code, and the world it inhabits.

Updated on: 09-May-2023


Kickstart Your Career

Get certified by completing the course

Get Started