🐍Python Polymorphism: A Beginner’s Guide
Polymorphism in Python is one of the most powerful concepts in Object-Oriented Programming (OOP). The term comes from Greek, meaning “many forms.” In simple words, polymorphism allows the same function or method to behave differently depending on the context.
This makes Python flexible, efficient, and beginner-friendly while working with functions, classes, and inheritance.
🔹 What is Polymorphism in Python?
Polymorphism means performing a single action in different ways. For example, the +
operator in Python can add numbers, concatenate strings, or merge lists. This ability of functions, operators, or methods to take multiple forms is called polymorphism.
# Example of Polymorphism with +
print(10 + 5) # Adds numbers → 15
print("Hello " + "Python") # Concatenates strings → Hello Python
print([1, 2] + [3, 4]) # Merges lists → [1, 2, 3, 4]
🔹 Uses of Polymorphism
- Code Reusability: Write one function and use it for different types of objects.
- Simplifies Code: Reduces complexity by using the same method for multiple purposes.
- Flexibility: Methods and operators behave differently based on input.
- Supports OOP: Enhances inheritance and class designs in Python.
🔹 Syntax of Polymorphism
# General Syntax
function_or_method(object)
# Example
len("Hello") # Works on string
len([1, 2, 3]) # Works on list
len({"a":1,"b":2}) # Works on dictionary
🔹 Function Polymorphism in Python
Some built-in functions in Python show polymorphism because they can work with multiple data types.
👉 String Example
print(len("Python")) # Output: 6
👉 Tuple Example
my_tuple = (10, 20, 30)
print(len(my_tuple)) # Output: 3
👉 Dictionary Example
my_dict = {"name":"Alice", "age":25}
print(len(my_dict)) # Output: 2
🔹 Class Polymorphism
Polymorphism is also applied to user-defined classes. Different classes can have methods with the same name, but they behave differently depending on the object calling them.
class Dog:
def sound(self):
return "Bark!"
class Cat:
def sound(self):
return "Meow!"
# Using Polymorphism
for pet in (Dog(), Cat()):
print(pet.sound())
Output:
Bark!
Meow!
🔹 Inheritance & Polymorphism
Polymorphism becomes more powerful with inheritance. A child class can override parent class methods while keeping the same method name.
class Animal:
def move(self):
print("Animals can move")
class Dog(Animal):
def move(self): # Overriding
print("Dogs run on four legs")
class Bird(Animal):
def move(self): # Overriding
print("Birds fly in the sky")
# Demonstration
for creature in (Animal(), Dog(), Bird()):
creature.move()
Output:
Animals can move
Dogs run on four legs
Birds fly in the sky
❓ FAQ on Python Polymorphism
Q1: Is polymorphism only available in classes?
No. Polymorphism is also available in built-in functions and operators.
Q2: How is polymorphism different from inheritance?
Inheritance is about reusing code from a parent class, while polymorphism is about redefining behavior using the same method name.
Q3: Do all OOP languages support polymorphism?
Yes, but the implementation differs. Python makes it simpler and more flexible.
📝 Exercises for Practice
- Create a class
Shape
with a methodarea()
. Override it inSquare
andCircle
. - Write a program using polymorphism to calculate length of a string, list, and dictionary.
- Make two classes
Car
andBike
with a methodspeed()
. Use a loop to call the method for each object.
🔹 Conclusion
Polymorphism is an essential concept in Python that helps developers write clean, flexible, and reusable code. From simple operators to complex class hierarchies, polymorphism gives Python its power and simplicity.
As a beginner, practicing polymorphism will make your OOP skills stronger and prepare you for advanced topics like abstraction, encapsulation, and design patterns.
Related Posts
- Python Programming: A Beginner’s Guide
- Python Variables
- Python Data Types
- Python Strings
- Python Operators
- Python Lists
- Python Tuples
- Python Sets
- Python Dictionaries
- Python If...Else Statements and Conditions
- Python Match Statement
- Python Functions
- Python Lambda
- Python Arrays
- Python Classes & Objects
- Python Inheritance
- Python Iterators
Continue Learning: Explore more beginner-friendly topics and practice materials in our Programming Resource Hub.
0 Comments