• [^] # Re: Les annotations

    Posté par (site web personnel) . En réponse au journal PyParis 2018, c'était bien!. Évalué à 3. Dernière modification le 26 novembre 2018 à 12:17.

    C'est vrai que c'est pénible de devoir importer des modules juste pour avoir sous la main la classe pour l'annotation. La première fois que je l'ai fait, ça m'a fait un import circulaire, j'ai cru que j'allais m'arracher les cheveux !

    Je te rejoins aussi sur le fait que ça surcharge pas mal les entêtes de fonctions, qui étaient plus facile à lire sans, surtout quand tu as des valeurs par défaut.

    Cela dit, malgré ces deux inconvénients, je suis très content de les utiliser. Dès que la base de code grossit, qu'il y a plusieurs développeurs dans l'équipe, dès que le projet prend de l'age, les annotations créent beaucoup de valeur car elles vérifient la cohérence globale de ton programme. Ce que ne font pas les docstring.

    Les docstrings ont d'autres inconvénients:
    - parfois, elles sont pas là
    - parfois, elles sont pas assez précises (elles oublient de préciser le type de retour, ...)
    - parfois, la fonction a évolué mais le développeur pressé a oublié de la mettre à jour

    Mais surtout:
    - les docstrings ne vérifient pas le type des données avec lesquelles la fonction est appelée
    - les docstrings peuvent contenir une erreur, genre elles disent qu'on peut passer une liste ou un tuple mais en fait, seule une liste fonctionne.

    Comme j'essaie de le montrer dans la présentation, les annotations permettent d’attraper pas mal d'erreur et obligent à clarifie son intention.