Annotations de fonction pour l'indication de type de collection
Dans Python 3, les annotations de fonction sont une approche courante pour spécifier des types, en particulier pour les collections homogènes (par ex. , listes). Cependant, les utilisateurs recherchaient une méthode pour incorporer des types de collections dans ces annotations.
Indication de type basée sur la docstring
Au départ, les développeurs Python s'appuyaient sur des docstrings formatés, tels que reStructuredText ou Sphinx, pour fournir des informations sur le type de collection. Ces approches étaient prises en charge par les IDE, mais elles n'étaient pas aussi concises ou intégrées que les annotations.
登場*
Une percée significative est survenue avec le PEP 484 (Type Hints) et Introduction par Python 3.5 du module typing. Cette amélioration a permis aux développeurs de spécifier des types dans les collections à l'aide d'annotations de type.
Par exemple, une liste de chaînes peut être annotée comme :
from typing import List
def do_something(l: List[str]):
for s in l:
s # str
Cette annotation indique que la fonction attend une liste de chaînes et que les informations de type sont reflétées dans la complétion du code IDE.
Contraintes
Initialement, la spécification de types au sein de collections à l'aide d'annotations n'était pas prise en charge. Cependant, cette limitation a été corrigée dans Python 3.5.
Conclusion
Les annotations de type fournissent désormais un moyen complet et pratique de spécifier les types de collections, améliorant ainsi la vérification des types et la complétion du code IDE. fonctionnalités pour les développeurs Python.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3