Duck typing en Python est un concept fondamental de la programmation dynamique qui repose sur l’idée suivante :
“Si ça marche comme un canard, nage comme un canard et cancane comme un canard, alors c’est probablement un canard.”
Autrement dit, ce n’est pas le type d’un objet qui compte, mais les méthodes et comportements qu’il fournit.
En Python, on n’a pas besoin de vérifier explicitement le type d’un objet. On suppose qu’il peut être utilisé tant qu’il possède les méthodes attendues.
Exemple :class Chien:
def parler(self):
return "Wouf!"
class Robot:
def parler(self):
return "Bip bip!"
def faire_parler(objet):
print(objet.parler())
# Peu importe le type de l'objet :
rex = Chien()
r2d2 = Robot()
faire_parler(rex) # Wouf!
faire_parler(r2d2) # Bip bip!
Ici, la fonction faire_parler()
ne se soucie pas de savoir si c’est un Chien ou un Robot. Elle appelle simplement parler()
.
C’est ça le duck typing : on fait confiance à l’objet tant qu’il répond à l’interface attendue.
- Duck typing = programmation basée sur le comportement plutôt que sur le type.
- Pas besoin de
isinstance()
ou de vérifier les classes. - Permet un code plus flexible et générique.