top of page

Python's Super Trio: Inheritance, Encapsulation, and Polymorphism Demystified


Picture this: you're building a magnificent digital kingdom in Python, and you need the perfect tools to do it. Enter the trio of Pythonic superpowers: Inheritance, Encapsulation, and Polymorphism. They're your trusty sidekicks, helping you create clean, efficient, and extensible code. In this blog, lets unravel them.

Chapter 1: Inheritance - The Family Tree of Code

Imagine coding as a royal lineage, where classes are noble families and objects are their descendants. Inheritance lets you create new classes (the heirs) based on existing ones (the ancestors). Here's how:

class Animal:

def speak(self):


class Dog(Animal):

def speak(self):

return "Woof!"

class Cat(Animal):

def speak(self):

return "Meow!"

In this kingdom, Dog and Cat inherit the speak method from Animal but customize it to have their unique voices.

Chapter 2: Encapsulation - Guarding Royal Treasures

​class Treasure:

def __init__(self, account_number, initial_balance):

self.__account_number = account_number

self.__balance = initial_balance

def get_account_number(self):

return self.__account_number

def get_balance(self):

return self.__balance

def deposit(self, amount):

if amount > 0:

self.__balance += amount

def withdraw(self, amount):

if amount > 0 and amount <= self.__balance:

self.__balance -= amount

In this banking realm, the BankAccount class encapsulates account details. The __account_number and __balance attributes are hidden from the outside world, and access to them is only possible through the get_account_number and get_balance methods.

Additionally, the deposit and withdraw methods ensure that transactions are controlled and secure. Encapsulation provides a protective barrier around the bank account data, preventing unauthorized changes and ensuring that it remains safe.

Chapter 3: Polymorphism - The Shape-Shifting Wizards

In your Python realm, polymorphism lets different classes respond to the same method in their way. It's like shape-shifting wizards who adapt to any spell. Witness the magic:

class Shape:

def area(self):


class Circle(Shape):

def __init__(self, radius):

self.radius = radius

def area(self):

return 3.14 * self.radius**2

class Square(Shape):

def __init__(self, side):

self.side = side

def area(self):

return self.side**2

Circle and Square both have their area methods, but they calculate it differently. They're polymorphic!

Conclusion: You're the Python Royalty Now!

With Inheritance, Encapsulation, and Polymorphism in your Python arsenal, you're the reigning monarch of code. You can build complex, modular, and efficient programs while keeping your treasures hidden and your code flexible. As you continue your Python journey, remember these superpowers—they'll make you a legendary Pythonista in no time!

14 views0 comments

Recent Posts

See All


Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page