Annotations variables : amélioration du système de types de Python
Les annotations variables ont été introduites dans Python 3.6, suite à l'implémentation d'indices de type avec PEP 484. Alors que les indices de type faisaient simplement allusion au type attendu d'une variable, les annotations poussent le concept plus loin en vous permettant de spécifier directement un type de variable.
Syntaxe et fonctionnalités
La nouvelle syntaxe d'annotation permet à la fois des annotations autonomes et des annotations lors des affectations :
# Standalone annotation number: int # Annotation during assignment primes: List[int] = []
La syntaxe annotated_assignment_stmt couvre cette nouvelle syntaxe, en introduisant le caractère ":" comme délimiteur.
De plus, Python 3.6 introduit l'attribut annotations pour les modules et les classes. Cet attribut contient les annotations de type pour les variables définies.
Accès aux annotations
Pour accéder aux annotations, vous pouvez utiliser la fonction get_type_hints du module de saisie. Par exemple :
>>> from typing import get_type_hints >>> primes: List[int] = [] >>> captain: str >>> get_type_hints(__main__) {'primes': typing.List[int]}
Exemple
Considérez l'exemple fourni dans la question :
primes: List[int] = []
Cette annotation indique que la variable primes est une liste d'entiers. Toute affectation à cette variable doit adhérer à ce type.
Variables de classe et StarShip
La variable Stats de la classe StarShip est une variable d'instance, pas une variable de classe. ClassVar est un type spécial qui désigne les variables de classe. Actuellement, Starship.stats est une variable d'instance de type Dict[str, int].
Usage
Les annotations de variable sont facultatives et principalement destinées à être utilisées par type- outils de vérification. Ils fournissent un moyen simple et structuré de spécifier les métadonnées de type, améliorant la lisibilité du code et facilitant le développement d'outils et de bibliothèques personnalisés liés aux types.
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!