Le 'Duck Typing' est une approche de typage dynamique utilisée dans les langages de programmation comme Python. C'est un concept fondamental qui aide à comprendre comment Python gère les types d'objets lors de l'exécution du code.
Le terme 'Duck Typing' provient de l'expression anglaise "If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck". En d'autres termes, le 'Duck Typing' ne se préoccupe pas du type de l'objet, mais plutôt de savoir si l'objet peut exécuter la méthode demandée ou non.
Un exemple pratique du 'Duck Typing' en Python peut être illustré par la manipulation d'objets de types différents (par exemple, une liste et un tuple) en utilisant la même méthode (__len__
pour obtenir la longueur de l'objet):
def longueur(objet):
return len(objet)
print(longueur([1, 2, 3, 4])) # Retourne 4
print(longueur((1, 2, 3, 4, 5))) # Retourne 5
Dans cet exemple, la fonction longueur
n'est pas concernée par le type de l'objet passé en argument. Tant que l'objet possède une méthode __len__
qui peut être invoquée, il sera traité de la même manière.
Le 'Duck Typing' en Python conduit à une plus grande flexibilité dans la programmation. Il n'est pas nécessaire de vérifier constamment les types d'objets; au lieu de cela, nous pouvons nous concentrer sur les fonctionnalités que ces objets doivent avoir pour exécuter le code correctement. Cette flexibilité, cependant, peut aussi mener à des erreurs d'exécution si l'on tente d'invoquer une méthode qui n'existe pas pour un certain type d'objet.
En résumé, le 'Duck Typing' est une technique de programmation qui met l'accent sur les capacités d'un objet plutôt que sur son type. C'est une caractéristique pilière de Python, qui permet d'écrire du code plus propre, plus flexible et plus intuitif.