Python 3.X (uniquement) généralise également la définition de fonction pour permettre aux arguments et aux valeurs de retour d'être annotés avec des valeurs d'objet
à utiliser dans les extensions .
Ses données META à expliquer, pour être plus explicite sur les valeurs de fonction.
Les annotations sont codées comme :value
après le nom de l'argument et avant une valeur par défaut, et comme ->value
après la liste d'arguments.
Ils sont collectés dans un __annotations__
attribut de la fonction, mais ne sont pas traités autrement comme spéciaux par Python lui-même:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
Source: Python Pocket Reference, cinquième édition
EXEMPLE:
Le typeannotations
module fournit un ensemble d'outils pour la vérification de type et l'inférence de type du code Python. Il fournit également un ensemble de types utiles pour annoter des fonctions et des objets.
Ces outils sont principalement conçus pour être utilisés par des analyseurs statiques tels que les linters, les bibliothèques de complétion de code et les IDE. De plus, des décorateurs pour effectuer des contrôles d'exécution sont fournis. La vérification de type à l'exécution n'est pas toujours une bonne idée en Python, mais dans certains cas, elle peut être très utile.
https://github.com/ceronman/typeannotations
Comment la saisie aide à écrire un meilleur code
La saisie peut vous aider à effectuer une analyse de code statique pour détecter les erreurs de type avant d'envoyer votre code en production et vous éviter certains bogues évidents. Il existe des outils comme mypy, que vous pouvez ajouter à votre boîte à outils dans le cadre du cycle de vie de votre logiciel. mypy peut vérifier les types corrects en exécutant partiellement ou entièrement votre base de code. mypy vous aide également à détecter des bogues tels que la vérification du type None lorsque la valeur est renvoyée par une fonction. La saisie aide à rendre votre code plus propre. Au lieu de documenter votre code à l'aide de commentaires, où vous spécifiez des types dans une docstring, vous pouvez utiliser des types sans aucun coût de performance.
Clean Python: Codage élégant en Python ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Syntaxe des annotations de variables
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html