👨👦 Python Inheritance – Reuse Code the Smart Way | TechTown.in
One of the biggest superpowers of Object-Oriented Programming is inheritance — the ability to create a new class by borrowing features from an existing one.
In Python, inheritance lets you write cleaner, reusable, and scalable code, especially when you deal with similar objects.
In this guide, we’ll break down Python inheritance, how it works, and how to use it to build smarter class structures.
🧠 What is Inheritance?
Inheritance allows you to create a child class that inherits the properties and behaviors (attributes and methods) of a parent class.
🧱 Why Use Inheritance?
- ✅ Reuse code
- ✅ Avoid repetition (DRY principle)
- ✅ Extend functionality
- ✅ Create clear object hierarchies
🧰 Basic Inheritance Example
class Person:
def __init__(self, name):
self.name = name
def speak(self):
print(f"{self.name} is speaking")
class Student(Person):
pass
s1 = Student("Tanmay")
s1.speak()
🎯 Output:
Tanmay is speaking
✅ The Student class inherits the __init__() and speak() method from Person.
🔁 The super() Function
Want to customize the child class but still keep parent features? Use super() to call the parent class:
class Student(Person):
def __init__(self, name, course):
super().__init__(name)
self.course = course
🎯 Reuses the __init__() from Person.
🔄 Method Overriding
Child classes can also override methods from the parent.
class Student(Person):
def speak(self):
print(f"{self.name} is asking a question.")
🌳 Multilevel Inheritance
class A:
def show(self):
print("Class A")
class B(A):
pass
class C(B):
pass
obj = C()
obj.show() # Inherits from A through B
🧩 Multiple Inheritance
A class can inherit from more than one parent:
class Parent1:
def show1(self):
print("Parent 1")
class Parent2:
def show2(self):
print("Parent 2")
class Child(Parent1, Parent2):
pass
c = Child()
c.show1()
c.show2()
📜 Inheritance Types in Python
| Type | Example Classes | Description |
|---|---|---|
| Single Inheritance | Student(Person) | One parent, one child |
| Multilevel | C(B), B(A) | Chain of inheritance |
| Multiple Inheritance | Child(Parent1, Parent2) | Inherits from two or more parent classes |
🔐 What Can Be Inherited?
✅ Attributes (variables)
✅ Methods (functions)
✅ Constructors (via super())
🧪 Real-World Use Case – E-commerce
class Product:
def __init__(self, name, price):
self.name = name
self.price = price
class DigitalProduct(Product):
def download(self):
print(f"Downloading {self.name}")
item = DigitalProduct("E-book", 299)
item.download()
🎯 The child class DigitalProduct reuses everything from Product.
📝 Summary – Python Inheritance Cheatsheet
| Concept | Keyword / Tool | Purpose |
|---|---|---|
| Inherit class | class Child(Parent) | Reuse parent code |
| Inherit constructor | super().__init__() | Use parent’s initializer |
| Override method | Redefine in child | Customize behavior |
| Multilevel | Chain classes | Create deeper hierarchy |
| Multiple | Two or more parents | Combine features |
🏁 Final Thoughts
Python inheritance is your best friend when you want to scale your code without repeating yourself. It helps you organize logic in a hierarchical and modular way, keeping your code clean, DRY, and maintainable.
The more you build real projects, the more you’ll see inheritance in action — from web apps to games to machine learning pipelines.
📘 Continue learning OOP the easy way at TechTown.in

