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 Dog and Cat have a method called speak().
  • When we call animal.speak(), Python knows which version to use based on the object.
  • Dog says Woof! and Cat says 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.