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
Deux cordes
str_1 = “10” str_2 = “45” print(str_1 + str_2) >>> 1045
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
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())
dog = Dog() cat = Cat() animal_sound(dog) # Output: Woof! animal_sound(cat) # Output: Meow!
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)
cow = Animal("grass") circ = Circle(7) enter_obj(cow)print(str(enter_obj(circ))) >>> eats grass 153.86
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!