Python Polymorphism - Same Thing, Different Behavior
What is Polymorphism?
Polymorphism means “many forms.”
It’s a concept where something (like a function or method) behaves differently based on the object it is working with.
Imagine this: A person can be a student, a player, and a singer. Same person — but different roles. That’s the idea behind polymorphism.
Simple Example 1: len() Function
Python has a built-in function len() that gives you the length of something.
print(len("hello")) # Length of a string
print(len([1, 2, 3, 4])) # Length of a list
print(len((10, 20))) # Length of a tuple
5
4
2
Why This Output?
"hello"has 5 letters →len("hello")is 5[1, 2, 3, 4]has 4 items →len([1, 2, 3, 4])is 4(10, 20)has 2 items →len((10, 20))is 2
The same function (len()) gives correct results for different types — that’s polymorphism!
Simple Example 2: Polymorphism with Classes
Let’s look at how polymorphism works with objects from different classes.
class Dog:
def speak(self):
return "Woof!"
class Cat:
def speak(self):
return "Meow!"
# Using polymorphism
animals = [Dog(), Cat()]
for animal in animals:
print(animal.speak())
Woof!
Meow!
Why This Output?
- Both
DogandCathave a method calledspeak(). - When we call
animal.speak(), Python knows which version to use based on the object. Dogsays Woof! andCatsays Meow!.
This is polymorphism — speak() behaves differently for different objects.
Polymorphism in Daily Life
Here are some fun examples:
- You can draw with a pencil, pen, or crayon. Same action, different tools → different results.
- You can drive a car, a bike, or a truck. Same action, different vehicles → different behavior.
Why Learn Polymorphism?
- It makes your code more flexible and reusable.
- You can write one function or method and use it for many types of data.
Conclusion
Polymorphism allows the same action to work differently depending on the object.