Outils personnels
Vous êtes ici : Accueil Python Bonnes pratiques et astuces Python Duck typing

Duck typing

Par David Goodger - Dernière modification 17/05/2008 11:23
Contributeurs : David Larlet
CC BY-SA

EAFP vs. LBYL

Il est plus facile de demander le pardon que la permission (EAFP) vs. analyser avant d'échouer (LBYL). Généralement EAFP est préféré, mais pas toujours.

  • Duck typing Si ça marche comme un canard, parle comme un canard et ressemble à un canard : c'est un canard.
  • Exceptions Essayez de forcer le type si un objet doit être d'un type particulier. Si x doit être une chaîne de caractères pour que votre code fonctionne, pourquoi ne pas appeler str(x) au lieu d'essayer quelque` chose comme isinstance(x, str).

Exemple EAFP try/except

Vous pouvez encapsuler vos exceptions dans un bloc try/except pour pour récupérer les erreurs et vous allez probablement arriver à une solution qui est beaucoup plus générale que si vous aviez essayer d'anticiper chaque cas.

try:
    return str(x)
except TypeError:
    ...

Note: Spécifiez toujours l'exception à attraper. N'utilisez jamais except tout seul. Sinon except va cacher d'autres exceptions qui risquent d'être levées rendant votre code très difficile à debugger.

Actions sur le document