10 façons de déclarer les annotations de type en Python

#99 - Un incontournable pour les programmeurs Python

Lors de l'écriture de code Python, les annotations de type (type hints) fournissent un moyen incroyable de spécifier des informations explicites sur :

  • les types attendus des arguments des fonctions, et

  • leur type retourné.

Pourtant, nous savons tous que Python ne les applique JAMAIS.

Mais cela signifie-t-il qu'ils n'ont aucune utilité ?

Bien sûr que non !

Ces derniers temps, les annotations de type deviennent de plus en plus précieuses pour les projets Python.

Bien qu'elles ne soient pas imposées, les développeurs Python les trouvent extrêmement utiles pour améliorer la qualité du code et la maintenabilité.

Aujourd'hui, laisse-moi te guider à travers 10 façons différentes et incontournables de déclarer des annotations de type en seulement 2 minutes.

C'est parti !

Sommaire

#1 - Annotations de type pour les objets Python standard

La façon la plus élémentaire (et la plus indispensable) de déclarer des annotations de type pour les objets Python standard est la suivante :

Tout le monde connaît les annotations de type ci-dessus, car elles sont assez courantes.

Cependant, pour les list, tuple et dict, il est recommandé d'utiliser le module typing car il permet de fournir plus d'informations sur l'objet :

#2 - Annotations de type multiple pour un objet

Si un objet peut avoir plusieurs types, utilise le mot-clé Union (ou le symbole Pipe | si tu utilises Python 3.10 ou supérieur) :

#3 - Annotations de type pour les valeurs None

Parfois, un objet peut être None ou avoir tout autre type de données standard.
On peut déclarer ces objets comme suit :

#4 - Annotations de type pour un iterable

Les objets itérables sont des objets sur lesquels tu peux itérer - list, tuple ou dict.
On peut déclarer ces objets comme suit :

#5 - Annotations de type pour les objets constants

Certains objets ne peuvent jamais changer de valeur au cours du programme. Ils doivent rester constants.

Déclare-les en utilisant Final :

#6 - Annotations de type pour les valeurs fixes

Certains objets peuvent ne pas être constants mais ne prendre qu'un ensemble fixe de valeurs. Par exemple, ici grade ne peut prendre des valeurs qu'à partir d'un ensemble fixe de notes.

Tu peux déclarer de telles variables de cette façon :

#7 - Annotations de type pour les objets ayant n'importe quel type de données possible

Certains objets peuvent être de n'importe quel type - list, int, string, etc.
Déclare-les comme ceci :

#8 - Annotations de type dans les fonctions

Nous déclarons des annotations de type dans les fonctions à deux endroits :

  1. Pour spécifier les annotations de type pour ses paramètres

  2. Pour spécifier l'annotation de type de l'objet renvoyé par la fonction

Tu peux utiliser l'une des annotations de type mentionnées ci-dessus pour déclarer des annotations de type dans les fonctions - Any, Union, Iterable, Optional, etc.

#9 - Annotations de type d'un objet fonction

Il arrive qu'une fonction ait une autre fonction comme paramètre. Cela se produit toujours dans les décorateurs Python.

Nous pouvons déclarer le type de données pour de tels paramètres comme suit :

Callable, comme son nom l'indique, est un objet qui peut être invoqué - object().

#10 - Annotations de type Alias

Si les annotations de type deviennent volumineuses, complexes et illisibles, nous pouvons les aliaser en leur attribuant des noms plus courts :

C’est tout pour aujourd’hui !

Ce sont les 10 façons les plus courantes (et indispensables) de déclarer des annotations de type en Python.

Bien sûr, comme nous l'avons vu plus haut, Python n'impose jamais les annotations de type.

Cependant, ils sont immensément précieux et c’est une compétence indispensable si tu veux écrire du code mieux documenté, plus fiable et plus facile à maintenir.

J'ai créé ce notebook Jupyter pour que tu puisses commencer à les utiliser : Notebook Annotations de Type.

👉 À toi de jouer : Quelles sont les annotations de type que j'ai oubliées ?

Ça t'a plu ? 😎

Connexion ou S'abonner pour participer aux sondages.

Reply

or to participate.