Home > Backend Development > Python Tutorial > Understanding Polymorphism in Python

Understanding Polymorphism in Python

Mary-Kate Olsen
Release: 2024-12-08 00:16:12
Original
531 people have browsed it

Understanding Polymorphism in Python

The article provides an in-depth explanation of polymorphism in Python, highlighting its role in object-oriented programming.


Polymorphism is a Greek word that means many-shape or many-forms. Polymorphism is a fundamental concept in object-oriented programming (OOP). Python is polymorphic, meaning that in Python objects have the ability to take many forms. In simple words, polymorphism allows us to perform the same action in many different ways. (Vishal, 2021) Furthermore, in Python, everything is an object/a class. “Guido van Rossum has designed the language according to the principle “first-class everything”. He wrote: “One of my goals for Python was to make it so that all objects were “first class.” By this, I meant that I wanted all objects that could be named in the language (e.g., integers, strings, functions, classes, modules, methods, and so on) to have equal status.” (Klein, 2022, 1. Object Oriented Programming)

To understand Polymorphism, it is important to understand the ”Duck Typing” concept.”If it looks like a duck and quacks like a duck, then it probably is a duck.” In programming, this means that the suitability of an object is determined by the presence of certain methods and properties, rather than the actual type of the object.In Python, Duck Typing is the concept where the ‘suitability’ of an object is determined by the presence of certain methods or attributes, rather than the actual type of the object. In other words, Polymorphism in Python means that a single operator, function, or class method can have multiple forms/behaviors depending on the context.

1. Operator polymorphism
Or operator overloading allows an operator like to perform different operations based on the operand types. (Jergenson, 2022)

For example:
Two integers

int_1 = 10
int_2 = 45
print(str(int_1 + int_2))
>>>
55
Copy after login

Two strings

str_1 = “10”
str_2 = “45”
print(str_1 + str_2)
>>>
1045
Copy after login

2. Function Polymorphism
Built-in functions like len() can act on multiple data types (e.g. strings, lists) and provide the length measured appropriately for each type.

For example:

str_1 = "polymorphic"
print(str(len(str_1)))
>>>
11

my_lst = [1, 2, 3, 4, 5]
print(str(len(my_lst))
>>>
5
Copy after login

3. Class method polymorphism
Allows subclasses to override methods inherited from the parent class.

For example:

#  Parent class
class Animal:
    def make_sound(self):
        pass

# Child Class
class Dog(Animal):
    def make_sound(self):
        return "Woof!"

# Child Class
class Cat(Animal):
    def make_sound(self):
        return "Meow!"
    def animal_sound(animal):
        print(animal.make_sound())
Copy after login
dog = Dog()
cat = Cat()
animal_sound(dog)  # Output: Woof!
animal_sound(cat)  # Output: Meow!
Copy after login

4. Independent classes can also define methods with the same name that behave differently.

For example:

def enter_obj(obj):
    return obj.action() # Independent class
class Animal:
    def __init__(self, food):
        self.food = food
    # same name as the Circle method different functionality
    def action(self):
        print(f"eats {self.food}")# Independent class
class Circle:
        def __init__(self, radius):
            self.radius = radius
        # same name as the Animal method different functionality
        def action(self):
            return 3.14 * (self.radius ** 2)
Copy after login
cow = Animal("grass")
circ = Circle(7)
enter_obj(cow)print(str(enter_obj(circ))) 
>>> 
eats grass 
153.86
Copy after login

In conclusion, polymorphism is a powerful feature of Python. It allows objects to take on multiple forms and behave differently based on the context. Python’s duck typing enables polymorphism by focusing on the presence of certain methods or attributes rather than the actual type of the object.


References:

Jergenson, C. (2022, May 31)._ What is polymorphism in python?_. Educative. https://www.educative.io/blog/what-is-polymorphism-python

Klein, B. (2022, February 1). Object Oriented Programming / OPP. python-course. https://python-course.eu/oop/object-oriented-programming.php

Vishal. (2021, October 21). Polymorphism in Python. PYnative. https://pynative.com/python-polymorphism/


Originally published at Understanding Polymorphism in Python - Medium on August 19, 2024.

The above is the detailed content of Understanding Polymorphism in Python. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template