🔹 Introduction
In Object-Oriented Programming (OOP), a class is like a blueprint, and objects are the real things created from that blueprint. When you create an object, Python allows you to automatically run a special method called __init__ to set up values or properties for that object. This makes sure that each object starts with the correct data.
⚙️ What is the __init__ Method?
The __init__ method is a special built-in method in Python. Its name always starts and ends with double underscores (__). It is automatically called whenever a new object of a class is created.
Key Points:
- It is also called the constructor of the class.
- It is mostly used to assign initial values to object attributes.
- The first parameter of __init__ is always self, which represents the current object.
🧑💻 Example of __init__ Method
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def display(self):
print(f"Name: {self.name}, Age: {self.age}")
# Creating objects
s1 = Student("Alice", 20)
s2 = Student("Bob", 22)
s1.display() # Output: Name: Alice, Age: 20
s2.display() # Output: Name: Bob, Age: 22
Here, the __init__ method is setting the name and age when each student object is created.
📌 Why Do We Need __init__?
The __init__ method helps us avoid writing extra lines of code after creating an object. Without it, we would need to manually assign values to attributes.
Without __init__:
class Student:
pass
s1 = Student()
s1.name = "Alice"
s1.age = 20
print(s1.name, s1.age)
With __init__:
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
s1 = Student("Alice", 20)
print(s1.name, s1.age)
Using __init__ makes the code cleaner and ensures every object is initialized properly.
🏗️ Default Values in __init__
We can also set default values for parameters in the __init__ method.
class Student:
def __init__(self, name, age=18):
self.name = name
self.age = age
s1 = Student("Alice")
s2 = Student("Bob", 22)
print(s1.name, s1.age) # Alice 18
print(s2.name, s2.age) # Bob 22
This allows flexibility when creating objects.
🔄 Multiple Objects with __init__
The __init__ method ensures that each object can store its own unique data.
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
c1 = Car("Toyota", "Corolla")
c2 = Car("Honda", "Civic")
print(c1.brand, c1.model) # Toyota Corolla
print(c2.brand, c2.model) # Honda Civic
Here, both objects (c1 and c2) have their own independent values.
🏁 Summary
The __init__ method in Python is a constructor that automatically runs when a new object is created. It is mainly used to initialize object attributes, making code cleaner and more organized. By using __init__, we ensure that every object has its required data from the start, making our programs reliable and easier to maintain.