Maison >développement back-end >Tutoriel Python >Comment les annotations de variables améliorent-elles les indications de type en Python ?

Comment les annotations de variables améliorent-elles les indications de type en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 22:41:11606parcourir

How Do Variable Annotations Enhance Type Hints in Python?

Comprendre les annotations de variables en Python

Python 3.6 a introduit les annotations de variables en tant qu'extension des astuces de type introduites dans PEP 484. Ces annotations fournissent un mécanisme pour spécifier les types de variables attendus, y compris la classe et l'instance variables.

Justification et syntaxe

Les annotations variables constituent une amélioration par rapport aux commentaires de type. Au lieu d'annoter le type à l'aide d'un commentaire de type #, la nouvelle syntaxe permet une annotation directe du type lors de l'affectation des variables :

primes: List[int] = []
captain: str  # Note: no initial value!

class Starship:
    stats: Dict[str, int] = {}

Métadonnées de type et les annotations Attribut

Les annotations de variables sont stockées dans un attribut spécial annotations attaché aux classes et aux modules. Cet attribut contient un mappage des noms de variables avec leurs types annotés :

__main__.__annotations__ = {'primes': List[int]}
Starship.__annotations__ = {'stats': Dict[str, int]}

Avantages et utilisation

Les annotations de variables permettent les avantages suivants :

  • Outils de vérification de type améliorés
  • Code plus clair documentation
  • Lisibilité améliorée du code

Nature facultative

Semblables aux astuces de saisie, les annotations de variables sont facultatives. Ils constituent un moyen pratique de transmettre des informations de type à des outils tiers.

ClassVar et variables d'instance

Alors que l'exemple de la question suggère que stats est une variable de classe , c'est en fait une variable d'instance. Les variables de classe sont annotées à l'aide de ClassVar[type], qui désigne les variables partagées entre toutes les instances d'une classe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn