Retour au cours

Polymorphisme et Duck Typing

Programmation Python : Le Bootcamp de Zéro à Héros

Polymorphisme

Polymorphisme signifie « plusieurs formes ». En Python, cela fait référence à la capacité de différents objets à répondre au même appel de méthode (ex: speak()) de manières différentes et spécifiques, souvent grâce à l'héritage.

Exemple (suite de l'Héritage)

Nous pouvons traiter tous les animaux de manière générique, même s'ils exécutent leur propre méthode speak unique.

python def animal_sound(animal): # La sortie exacte dépend du type d'objet passé print(animal.speak())

En supposant les classes Dog et Cat précédentes :

fido = Dog('Fido') luna = Cat('Luna')

animals = [fido, luna]

for creature in animals: animal_sound(creature)

Sortie :

Fido dit Wouf !

Luna dit Miaou.

Duck Typing (Le polymorphisme de Python)

Python utilise un concept appelé Duck Typing : « Si ça marche comme un canard et que ça cancane comme un canard, alors c'est un canard. »

En Python, nous ne nous soucions pas du type formel de l'objet (est-ce un Dog ou un Cat), seulement qu'il possède la méthode requise (possède-t-il une méthode speak() ?).

python class Robot: def speak(self): return "BEEP BOOP."

robot = Robot()

animal_sound(robot) # Fonctionne, car Robot possède une méthode .speak().

Sortie : BEEP BOOP.