0% found this document useful (0 votes)
6 views

22.python_polymorphism

Uploaded by

sowndaryas0201
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

22.python_polymorphism

Uploaded by

sowndaryas0201
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Python Polymorphism

The word "polymorphism" means "many forms", and in programming it refers


to methods/functions/operators with the same name that can be executed on
many objects or classes

Function Polymorphism
An example of a Python function that can be used on different objects is the
len() function
1.string
Example
For strings len() returns the number of characters
In [1]: x = "Hello World!"

print(len(x))

12

2.Tuple
Example
For tuples len() returns the number of items in the tuple
In [2]: mytuple = ("apple", "banana", "cherry")

print(len(mytuple))

3.Dictionary
Example
For dictionaries len() returns the number of key/value pairs in the dictionary
In [3]: thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

print(len(thisdict))

Class Polymorphism
Polymorphism is often used in Class methods, where we can have multiple
classes with the same method name.
For example, say we have three classes: Car, Boat, and Plane, and they all have a
method called move()
Example
Different classes with the same method
In [4]: #Create a Car class
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model

def move(self):
print("Drive!")

#Create a Boat class


class Boat:
def __init__(self, brand, model):
self.brand = brand
self.model = model

def move(self):
print("Sail!")

#Create a Plane class


class Plane:
def __init__(self, brand, model):
self.brand = brand
self.model = model

def move(self):
print("Fly!")

car1 = Car("Ford", "Mustang") #Create a Car object


boat1 = Boat("Ibiza", "Touring 20") #Create a Boat object
plane1 = Plane("Boeing", "747") #Create a Plane object

for x in (car1, boat1, plane1):


x.move()

Drive!
Sail!
Fly!

Inheritance Class Polymorphism


What about classes with child classes with the same name? Can we use
polymorphism there?
Yes. If we use the example above and make a parent class called Vehicle, and
make Car, Boat, Plane child classes of Vehicle, the child classes inherits the
Vehicle methods, but can override them
Example
Create a class called Vehicle, and make Car, Boat, Plane child classes of
Vehicle
In [5]: class Vehicle:
def __init__(self, brand, model):
self.brand = brand
self.model = model

def move(self):
print("Move!")

class Car(Vehicle):
pass

class Boat(Vehicle):
def move(self):
print("Sail!")

class Plane(Vehicle):
def move(self):
print("Fly!")

car1 = Car("Ford", "Mustang") #Create a Car object


boat1 = Boat("Ibiza", "Touring 20") #Create a Boat object
plane1 = Plane("Boeing", "747") #Create a Plane object

for x in (car1, boat1, plane1):


print(x.brand)
print(x.model)
x.move()

Ford
Mustang
Move!
Ibiza
Touring 20
Sail!
Boeing
747
Fly!

Child classes inherits the properties and methods from the parent class.
In the example above you can see that the Car class is empty, but it inherits
brand, model, and move() from Vehicle.
The Boat and Plane classes also inherit brand, model, and move() from Vehicle,
but they both override the move() method.
Because of polymorphism we can execute the same method for all classes

You might also like