Python : pourquoi et comment utiliser les annotations ?

-
4
 m de lecture
-
annotation python

Les annotations Python offrent des informations additionnelles sur les variables ou les fonctions. Elles permettent notamment d’améliorer la lisibilité du code, ou de détecter les erreurs par le biais d’un IDE ou de bibliothèques tierces. Découvrez tout ce que vous devez savoir sur les annotations Python, et comment apprendre à les utiliser.

Les langages de programmation comme C, C++ ou Java sont des langages à typage statique. Cela signifie que le type de données de la variable doit être déclaré avant de pouvoir effectivement l’utiliser dans un programme.

À l’inverse, Python est un langage à typage dynamique. Le type de données de la variable n’a donc pas besoin d’être déclaré au préalable. Il n’est déterminé qu’au runtime.

En d’autres termes, un développeur Python n’est pas obligé de déclarer le type de données de la valeur qu’une variable accepte, puisque Python réalise le type de données de cette variable en se basant sur sa valeur actuelle.

Les langages statistiques et dynamiques ont leurs propres avantages et inconvénients. L’un des problèmes des langages dynamiques est que les erreurs de typage ne sont détectées que dans le run-ime.

Davantage d’erreurs seront détectées au runtime alors qu’elles auraient pu être détectées pendant le temps de développement. En outre, l’absence de compilation peut mener à un code peu performant.

Les variables verbeuses rendent le code plus difficile à dire. On peut aussi déplorer des suppositions erronées sur le comportement de fonctions spécifiques, et des erreurs liées aux mauvaises associations.

Toutefois, depuis la version 3.0, Python permet de remédier à ce souci grâce aux annotations. Le but est de mettre en lumière le type de données des variables, pour que les erreurs de typage soient détectées avant le run time.

Qu'est-ce que les annotations Python ?

Les annotations sont une fonctionnalité Python indiquant aux développeurs le type de données des variables, ou les paramètres de fonction. Elles permettent aussi d’améliorer la lisibilité d’un programme en Python.

Il existe deux principaux types d’annotations en Python : les annotations de fonction et les annotations de variable. Chacune a son rôle et ses spécificités.

Les annotations de fonction peuvent indiquer des descriptions ou les types de données des paramètres et bien plus encore. Le plus souvent, les annotations de fonction sont toutefois utilisées pour dénoter le type de données des paramètres d’une fonction et le type de retour d’une fonction.

Les annotations de variable furent initialement introduites dans PEP 484, où les commentaires de type sont utilisés pour annoter les variables. Ces commentaires indiquent le type de données des variables. Cette méthode n’est toutefois pas très efficace, et comporte ses propres inconvénients.

Il a fallu attendre PEP 526 dans Python 3.6 pour l’introduction des annotations de variables. L’écriture d’annotations de variables comporte plusieurs règles, comme l’absence d’espace avant ou après les deux points.

Pour les types complexes tels que des listes ou des tuples, on utilise un module de typage. Ceci permet par exemple d’utiliser à la fois les annotations de fonction et de type.

Comment accéder aux annotations Python ?

Pour accéder aux annotations, vous pouvez utiliser l’attribut « __ annotations __ » sur l’objet de fonction. Les résultats sont donnés sous la forme d’un dictionnaire ou les touches et valeurs sont cartographiées aux paramètres et aux annotations respectivement.

Même si le retour n’est pas un paramètre, il peut être ajouté par Python pour indiquer le type de retour de la fonction. Si une fonction n’a aucune annotation, alors l’attribut « __annotations__ » renvoie un dictionnaire vide.

À quoi servent les annotations ?

Les annotations ont plusieurs cas d’usage. Tout d’abord, elles peuvent être utilisées pour détecter les erreurs de typage avant le runtime grâce à des outils tiers comme mypy capables de vérifier le typage statique et de proposer des conseils ou des avertissements.

L’outil mypy fut créé par Jukka Lehtosalo afin d’offrir les avantages d’un environnement de typage statique pour un langage dynamique comme Python. Il permet de vérifier le code annoté en Python et d’émettre des avertissements en cas d’utilisation incohérente.

Cet outil vérifie aussi la syntaxe du code, et signale les erreurs en cas de syntaxe invalide. Il prend également en charge le typage graduel permettant d’ajouter des conseils de typage dans le code à votre rythme. Parmi les outils similaires, on peut citer pyright, pytypes ou pyre.

De même, il est possible de détecter les erreurs grâce aux IDE si l’annotation a été utilisée pour indiquer le type de données de paramètres. Ceci aide à détecter les erreurs en écrivant le code dans un environnement de développement intégré comme Pycharm.

En outre, les annotations peuvent aussi aider pour l’autocomplétion. Un IDE comprend le type de données d’une variable grâce aux annotations, et propose donc des méthodes à appliquer à ce type de données.
Enfin, les annotations améliorent la lisibilité du code. Les types de données sont mis en lumière de façon claire et explicite, éliminant les besoins de docstrings ou de commentaires pour expliquer en détail.

En elles-mêmes, les annotations ne sont pas spécialement utiles sur Python. Le véritable avantage provient des bibliothèques tierces comme les linters, les type checkers ou les IDE capables d’utiliser les annotations.

Comment apprendre la programmation en Python ?

Python comporte de nombreuses subtilités telles que les annotations, permettant de tirer pleinement profit son potentiel. Afin d’apprendre à manier ce langage de programmation, vous pouvez choisir DataScientest.

Toutes nos formations comportent un module spécialement dédié à la programmation Python et à ses bibliothèques de Data Science comme NumPy et Pandas. Les autres modules du programme couvrent l’analyse de données, le Machine Learning, la DataViz ou encore la Business Intelligence.

À la fin du parcours, vous aurez toutes les compétences requises pour exercer le métier correspondant à la formation choisie : Data Analyst, Data Scientist, Data Engineer ou encore Data Manager. Plus de 80% de nos alumnis ont trouvé un emploi directement après le cursus.

Toutes nos formations s’effectuent en ligne et adoptent une approche Blended Learning, alliant apprentissage en ligne sur une plateforme coachée et Masterclass. Vous pouvez choisir entre une Formation Continue et un BootCamp intensif, en fonction de vos préférences et de vos disponibilités.

Pour le financement, toutes nos formations sont éligibles au Compte Personnel de Formation et à d’autres dispositifs comme la POEI auprès de Pôle Emploi pour les demandeurs d’emploi. Ne perdez plus une seconde, et découvrez DataScientest !

Vous savez tout sur les annotations Python. Pour plus d’informations, découvrez notre dossier complet sur Python et notre dossier sur les IDE.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?