Maison > développement back-end > Tutoriel Python > Comprendre le polymorphisme en Python

Comprendre le polymorphisme en Python

Mary-Kate Olsen
Libérer: 2024-12-08 00:16:12
original
542 Les gens l'ont consulté

Understanding Polymorphism in Python

L'article fournit une explication approfondie du polymorphisme en Python, soulignant son rôle dans la programmation orientée objet.


Polymorphisme est un mot grec qui signifie plusieurs formes ou plusieurs formes. Le polymorphisme est un concept fondamental de la programmation orientée objet (POO). Python est polymorphe, ce qui signifie qu'en Python, les objets ont la capacité de prendre de nombreuses formes. En termes simples, le polymorphisme nous permet d’effectuer la même action de différentes manières. (Vishal, 2021) De plus, en Python, tout est un objet/une classe. « Guido van Rossum a conçu le langage selon le principe « tout est de première classe ». Il a écrit : « L’un de mes objectifs pour Python était de faire en sorte que tous les objets soient « de première classe ». Par là, je voulais dire que je voulais que tous les objets pouvant être nommés dans le langage (par exemple, les entiers, les chaînes, les fonctions, les classes, les modules, les méthodes, etc.) aient le même statut. (Klein, 2022, 1. Programmation orientée objet)

Pour comprendre le polymorphisme, il est important de comprendre le concept de « Duck Typing ». « S'il ressemble à un canard et cancane comme un canard, alors c'est probablement un canard. » En programmation, cela signifie que l'adéquation d'un objet est déterminée par la présence de certaines méthodes et propriétés, plutôt que par le type réel de l'objet. En Python, Duck Typing est le concept dans lequel « l'adéquation » d'un objet est déterminée par la présence de certaines méthodes ou attributs, plutôt que le type réel de l'objet. En d'autres termes, le polymorphisme en Python signifie qu'un seul opérateur, fonction ou méthode de classe peut avoir plusieurs formes/comportements en fonction du contexte.

1. Polymorphisme de l'opérateur
Ou la surcharge d'opérateurs permet à un opérateur d'effectuer différentes opérations en fonction des types d'opérandes. (Jergenson, 2022)

Par exemple :
Deux entiers

int_1 = 10
int_2 = 45
print(str(int_1 + int_2))
>>>
55
Copier après la connexion

Deux cordes

str_1 = “10”
str_2 = “45”
print(str_1 + str_2)
>>>
1045
Copier après la connexion

2. Polymorphisme de fonction
Les fonctions intégrées telles que len() peuvent agir sur plusieurs types de données (par exemple, chaînes, listes) et fournir la longueur mesurée de manière appropriée pour chaque type.

Par exemple :

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

my_lst = [1, 2, 3, 4, 5]
print(str(len(my_lst))
>>>
5
Copier après la connexion

3. Polymorphisme de méthode de classe
Permet aux sous-classes de remplacer les méthodes héritées de la classe parent.

Par exemple :

#  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())
Copier après la connexion
dog = Dog()
cat = Cat()
animal_sound(dog)  # Output: Woof!
animal_sound(cat)  # Output: Meow!
Copier après la connexion

4. Les classes indépendantes peuvent également définir des méthodes portant le même nom qui se comportent différemment.

Par exemple :

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)
Copier après la connexion
cow = Animal("grass")
circ = Circle(7)
enter_obj(cow)print(str(enter_obj(circ))) 
>>> 
eats grass 
153.86
Copier après la connexion

En conclusion, le polymorphisme est une fonctionnalité puissante de Python. Cela permet aux objets de prendre plusieurs formes et de se comporter différemment en fonction du contexte. Le typage canard de Python permet le polymorphisme en se concentrant sur la présence de certaines méthodes ou attributs plutôt que sur le type réel de l'objet.


Références :

Jergenson, C. (31 mai 2022)._ Qu'est-ce que le polymorphisme en python ?_. Éducatif. https://www.educative.io/blog/what-is-polymorphism-python

Klein, B. (1er février 2022). Programmation Orientée Objet / OPP. cours python. https://python-course.eu/oop/object-oriented-programming.php

Vishal. (2021, 21 octobre). Polymorphisme en Python. PYnatif. https://pynative.com/python-polymorphism/


Publié à l'origine dans Understanding Polymorphism in Python - Medium le 19 août 2024.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal