__init__ in Python Last Updated : 12 Sep, 2025 Suggest changes Share Like Article Like Report __init__ method in Python is a constructor. It runs automatically when a new object of a class is created. Its main purpose is to initialize the object’s attributes and set up its initial state. When an object is created, memory is allocated for it, and __init__ helps organize that memory by assigning values to attributes.Let’s look at some examples.1. __init__ with ParametersYou can pass multiple parameters to set up different attributes. Python class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person("Alice", 30) p2 = Person("Bob", 25) print(p1.name, p1.age) # Alice 30 print(p2.name, p2.age) # Bob 25 OutputAlice 30 Bob 25 Explanation:self: refers to the current object (always the first parameter).name and age: parameters passed when creating the object.self.name and self.age: object attributes that store these values.2. Default Parameters in __init__Like normal functions, you can use default values in constructors. Python class Dog: def __init__(self, name, breed="Mixed", age=1): self.name = name self.breed = breed self.age = age d1 = Dog("Buddy") d2 = Dog("Max", "Golden Retriever", 5) print(d1.name, d1.breed, d1.age) print(d2.name, d2.breed, d2.age) OutputBuddy Mixed 1 Max Golden Retriever 5 Explanation:breed="Mixed" and age=1 are default values. When creating Dog("Buddy"), Python uses the defaults → breed = "Mixed", age = 1.When creating Dog ("Max", "Golden Retriever", 5), the defaults are overwritten by the provided values.3.__init__ Method with InheritanceWhen using inheritance, both parent and child classes can have __init__ methods. Python class A: def __init__(self): print("A init called") class B(A): def __init__(self): super().__init__() # Call parent __init__ print("B init called") obj = B() OutputA init called B init called Explanation:When obj = B () is created, Python looks for B.__init__.Inside B.__init__, the line super().__init__() calls the parent’s (A) constructor.So "A init called" is printed first.Then the rest of B.__init__ runs, printing "B init called".Related ArticleOOPsInheritance N nikhilaggarwal3 Follow Article Tags : Python Python-OOP Explore Python FundamentalsPython Introduction 2 min read Input and Output in Python 4 min read Python Variables 5 min read Python Operators 4 min read Python Keywords 2 min read Python Data Types 7 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 5 min read Python Functions 5 min read Recursion in Python 4 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 4 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 2 min read Python MySQL 9 min read Python Packages 10 min read Python Modules 7 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 6 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 15+ min read StatsModel Library- Tutorial 4 min read Learning Model Building in Scikit-learn 8 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 6 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 7 min read Python | Build a REST API using Flask 3 min read How to Create a basic API using Django Rest Framework ? 4 min read Python PracticePython Quiz 3 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read My Profile ${profileImgHtml} My Profile Edit Profile My Courses Join Community Transactions Logout Like