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