{{tag>dev python}}
====== Python: Annotations de type ======
Les annotations de type (type hinting) fournissent des méta-informations sur le type d'un paramètre dans la définition d'une fonction ou d'une méthode en Python.
* L'annotation est optionnelle
* L'annotation doit être une expression Python valide. Elle est évaluée une seule fois au chargement du module, le résultat est accessible via l'attribut ''%%__annotations__%%''.
La syntaxe est présentée ci-dessous:
>>> def somme(a:int, b:int=0):
... return a + b
...
>>>
Lors de la définition, l'annotation est accolée au paramètre avec le caractère '':''
Il est également possible d'annoter le code de retour d'une fonction avec la syntaxe:
>>> def somme(a:int, b:int) -> int:
... return a+b
...
>>> somme(2,1)
3
>>> somme(2,1.0)
3.0
>>> help(somme)
Help on function somme in module __main__:
somme(a:int, b:int) -> int
===== Usages =====
* L' annotation de type. int, list, MaClasse dans les parties clés de l’algo permet d'augmenter la vitesse d’exécution et diminuer la mémoire consommée.
* Complémentaire au docstring pour la génération de documentation (la fonction help() exploite les annotations).
* Vérification de type, analyse statique de typage (mypy)
* Translittération du code (traduction vers un autre langage Turing complet)
===== Références =====
* http://sametmax.com/les-annotations-en-python-3/