Variablenanmerkungen: Erweiterung des Python-Typsystems
Variablenanmerkungen wurden in Python 3.6 eingeführt, nach der Implementierung von Typhinweisen mit PEP 484. Während Typhinweise deuten lediglich auf den erwarteten Typ einer Variablen hin, Anmerkungen führen das Konzept weiter, indem sie Ihnen die direkte Angabe ermöglichen Der Typ einer Variablen.
Syntax und Funktionen
Die neue Annotationssyntax ermöglicht sowohl eigenständige Annotationen als auch Annotationen während Zuweisungen:
# Standalone annotation number: int # Annotation during assignment primes: List[int] = []
Der annotated_assignment_stmt Die Syntax deckt diese neue Syntax ab und führt das Zeichen „:“ als ein Trennzeichen.
Darüber hinaus führt Python 3.6 das Attribut annotations für Module und Klassen ein. Dieses Attribut enthält die Typanmerkungen für die definierten Variablen.
Zugriff auf Anmerkungen
Um auf Anmerkungen zuzugreifen, können Sie die Funktion get_type_hints aus dem Typisierungsmodul verwenden. Zum Beispiel:
>>> from typing import get_type_hints >>> primes: List[int] = [] >>> captain: str >>> get_type_hints(__main__) {'primes': typing.List[int]}
Beispiel
Betrachten Sie das in der Frage bereitgestellte Beispiel:
primes: List[int] = []
Diese Anmerkung gibt an, dass die Primzahlvariable ist eine Liste von ganzen Zahlen. Jede Zuweisung an diese Variable muss diesem Typ entsprechen.
Klassenvariablen und StarShip
Die Stats-Variable in der StarShip-Klasse ist eine Instanzvariable, keine Klassenvariable. ClassVar ist ein spezieller Typ, der Klassenvariablen bezeichnet. Derzeit ist Starship.stats eine Instanzvariable vom Typ Dict[str, int].
Verwendung
Variablenanmerkungen sind optional und in erster Linie für die Verwendung durch Typ- Überprüfung von Werkzeugen. Sie bieten eine einfache und strukturierte Möglichkeit, Typmetadaten anzugeben, verbessern die Lesbarkeit des Codes und erleichtern die Entwicklung benutzerdefinierter typbezogener Tools und Bibliotheken.
Das obige ist der detaillierte Inhalt vonWie verbessern Variablenanmerkungen das Typsystem von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!