What is Polymorphism in Python
Polymorphism is an important concept in Object-Oriented Programming. Polymorphism is the ability to take more than one form. In Python, polymorphism allows the users to define methods in the child class with the same name as defined in their parent class.
The below example shows an inbuilt polymorphic function:
l1 = len("python") l2 = len([1, 2, 3]) print(l1, l2)
We can see that in first case len() is used with string as its parameter, but in second case len() is used with list. This is how polymorphism works.
User-defined polymorphic functions:
def func(a, b, c = 10): return a, a**c + b print(func(5, 4)) #output will be (5, 54) print(func(5, 4, 2)) #output will be (5, 14)
Polymorphism in Class Methods:
class car: def __init__(self, name, tyres): self.name = name self.tyres = tyres def details(self): print(f"This is a car with name {self.name} and {self.tyres} number of tyres.") class bike: def __init__(self, name, tyres): self.name = name self.tyres = tyres def details(self): print(f"This is a bike with name {self.name} and {self.tyres} number of tyres.") car1 = car("Swift", 4) bike1 = bike("Duke", 2) for vehicle in (car1, bike1): vehicle.details()
Two classes car
and bike
are created. They share a similar structure and have the same method names details()
. However, notice that we have not created a common superclass or linked the classes together in any way. Even then, we can pack these two different objects into a tuple and iterate through it using a common vehicle variable. It is possible due to polymorphism.
Output:
This is a car with name Swift and 4 number of tyres. This is a bike with name Duke and 2 number of tyres.