Python Polymorphism

JK JK 2022 
Created at
Updated at  
7,088 0 0

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.


String

For strings len() returns the number of characters:

x = "Hello World!"

print(len(x))

Tuple

For tuples len() returns the number of items in the tuple:

mytuple = ("apple", "banana", "cherry")

print(len(mytuple))

Dictionary

For dictionaries len() returns the number of key/value pairs in the dictionary:

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():

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

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

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

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

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 class
boat1 = Boat("Ibiza", "Touring 20") #Create a Boat class
plane1 = Plane("Boeing", "747")     #Create a Plane class

for x in (car1, boat1, plane1):
  x.move()

Look at the for loop at the end. Because of polymorphism we can execute the same method for all three classes.


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:

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()

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.

Tags Python Python Polymorphism Facebook X
Comments 0
Similar posts
  1. Python Scope
    7,063
  2. Python Modules
    7,107
  3. Python Iterators
    7,109
  4. Python Inheritance
    7,189
  5. Python Classes/Objects
    7,469
  6. Python Arrays
    7,088
  7. Python Lambda
    7,105
  8. Python Functions
    7,065
  9. Python While Loops/For Loops
    7,507
  10. Python Conditions and If statements
    7,130
  11. Python Dictionaries
    7,059
  12. Python Sets
    7,093
  13. Python Tuples
    7,172
  14. Python Comparison Operators
    7,240
  15. Python Arithmetic Operators
    7,078
  16. Printing string n times
    7,068
  17. String concatenation by join()
    7,136
  18. Python Lists
    7,341
  19. Python String Operations
    7,417
  20. Python Data Types
    7,445
  21. Python Variables
    7,409
  22. Python Comments
    7,545
  23. Python Syntax
    7,408
  24. Python Getting Started
    7,459
  25. Python Introduction
    7,101
  26. What is Python?
    7,731
  27. Code Chronicles - A Caffeine-Fueled Journey into Data Software Engineering
    7,367
  28. Machine Learning Types and Programming Languages
    7,235
  29. Python Tutorials for AP Computer Science Principles, Data Projects and High School Internship
    7,897
  30. Mastering Excel Data Manipulation with Python
    7,072
  31. Challenge: One Code Problem Per Day
    1,102
  32. Clean Python Environments: The Power of venv vs. Docker
    838
  1. How to Build Llama 3 AI Apps with Python: Setup & User Prompts
    820
  2. Try...Catch Helps Ignoring Data Type Miss-Match Error in Python
    9,213
  3. RegExp example in Python to exclude javascript from HTML code
    7,056
  4. Python code to convert from Lunar to Solar
    7,733
  5. Python example to download webpage
    8,608
Recently updated
  1. Why You Can't Stop Watching Jack Bryan's Beatbox Gaming Shorts
    36
  2. Song So-hee: The Soulful Voice Touching Hearts Through Korean Music
    32
  3. Watch This Dazzling Dancer’s Mind-Blowing Moves
    79
  4. Michael Jackson's Billie Jean
    155
  5. Bootstrap vs. Tailwind CSS: Origins, Features, Pros & Cons, and How to Choose the Right Framework
    152
  6. The Complete Guide to Golang: History, Features, Real-World Uses, and Code Examples
    489
  7. Telemetry vs. Analytics: Understanding the Difference and Why It Matters
    258
  8. The Evolution and Production Reality of Agentic AI
    224
  9. How to Activate or Waive Your UIUC Student Health Insurance
    311
  10. Complete Guide to Building a Machine Learning Model
    340
  11. My life cuts at Las Vegas during Thanksgiving day holiday
    7,425
  12. The Cybercab Transformation: From Autonomous Taxi to Mobile Base Station
    373
  13. Harness vs. OpenClaw: Two Very Different "Agents"
    1,000
  14. What is Docker? Why is Docker also useful in a development environment?
    636
  15. UIUC 2026-2027 Academic Calendar
    1,624
  16. Open-Source LLMs: The AI Revolution
    773
  17. Resume 2.0: Leveling Up for My First Software Gig
    2,255
  18. Not everyone will understand what this man just did
    1,905
  19. UIUC Dorm Guide: Find Your Perfect Fit !!
    1,606
  20. Unpacking IU's Shopper
    777
  21. Jackie Chan's Police Story: The Action Masterpiece
    671
  22. The IVE Story: Identity, 'I AM' Charts, and Influence
    976
  23. Tech Visionaries who graduated at UIUC - You are the Next Turn
    1,193
  24. Open Databases for Sex Crime Occurrences in the U.S.
    728
  25. Automatically copy text to the clipboard when dragging the mouse in the Cursor
    2,678
  26. My First Day at University of Illinois-Urvana Champaign
    1,209
  27. Sand, Sea, and a Splash of Fun at Newport Beach: A Family Adventure
    8,150
  28. Sun, Rocks, and Adventure: A Day at Joshua Tree National Park
    8,228
  29. Sipping the Stars: My Starbucks Adventure
    9,679
  30. Exciting explore at Sequoia National Park
    7,672
  31. My Life Shot at Death Valley
    1,727
  32. Ip Man fights with Muay Thai Master
    953
  33. Mad Clown - Don't Die
    1,041
  34. How to get Student Enrollment and Degree Verification at UIUC
    4,953
  35. LAX Thanksgiving Rush: A Joyful Reunion
    933
  36. ZO ZAZZ(조째즈) - Don`t you know (모르시나요) (PROD.ROCOBERRY)
    1,139
  37. FISHINGIRLS Unleashes Energetic EP 'Funiverse' Featuring Signature Track 'Fishing King'
    996
  38. 10CM - To Reach You (너에게 닿기를)
    1,171
  39. Feeling weak? Transform yourself at the UIUC ARC!
    1,578
  40. BOYNEXTDOOR - If I Say I Love You
    1,196
  41. The Future of Software Engineer - AI Engineering
    935
  42. G Dragon x Taeyang (Eyes Nose Lips, Power, Home Sweet Home, GOOD BOY) - LE GALA PIÈCES JAUNES 2025
    929
  43. Lie - Legend song by BIGBANG
    7,827
  44. Why ROLLBACK is useful when you work with Google Gemini CLI?
    855
  45. Reimbursement after Vaccination at McKinley Health Center
    1,035
  46. Gemini CLI makes a Magic! Time to speed up your app development with Google Gemini CLI!
    973
  47. Common Questions from UIUC school life in terms of CS Program
    1,138
  48. UIUC Immunization Compliance
    1,225
  49. LEE CHANHYUK's songs really resonate with my soul - Time Stop! Vivid LaLa Love, Eve, Endangered Love ...
    1,103
  50. LEE CHANHYUK - Endangered Love (멸종위기사랑)
    1,103