Course
Polymorphism
Python Tutorial
This Python tutorial has been written for the beginners to help them understand the basic to advanced concepts of Python Programming Language. After completing this tutorial, you will find yourself at a great level of expertise in Python, from where you can take yourself to the next levels to become a world class Software Engineer.
Polymorphism
The term "
polymorphism
" refers to a function or method taking different form in different contexts. Since Python is a dynamically typed language, Polymorphism in Python is very easily implemented.If a method in a parent class is overridden with different business logic in its different child classes, the base class method is a polymorphic method.
Example
As an example of polymorphism given below, we have
shape
which is an abstract class. It is used as parent by two classes circle and rectangle. Both classes overrideparent's draw()
method in different ways.from abc import ABC, abstractmethodclass shape(ABC): @abstractmethod def draw(self): "Abstract method" return
class circle(shape): def draw(self): super().draw() print ("Draw a circle") return
class rectangle(shape): def draw(self): super().draw() print ("Draw a rectangle") return
shapes = [circle(), rectangle()]for shp in shapes: shp.draw()
Output
When you execute this code, it will produce the following output
Draw a circleDraw a rectangle
The variable shp first refers to circle object and calls draw() method from circle class. In next iteration, it refers to rectangle object and calls
draw()
method from rectangle class. Hence draw() method in shape class is polymorphic.