Python 3.X (nur) verallgemeinert auch die Funktionsdefinition, damit Argumente und Rückgabewerte mit Objektwerten zur Verwendung in Erweiterungen kommentiert werden können
.
Seine META-Daten zu erklären, um die Funktionswerte genauer zu beschreiben.
Anmerkungen werden wie :value
nach dem Argumentnamen und vor einem Standard sowie ->value
nach der Argumentliste codiert .
Sie werden in einem __annotations__
Attribut der Funktion gesammelt , aber von Python selbst nicht als besonders behandelt:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
Quelle: Python Pocket Reference, 5. Ausgabe
BEISPIEL:
Das typeannotations
Modul bietet eine Reihe von Tools zur Typprüfung und Typinferenz von Python-Code. Es enthält auch eine Reihe von Typen, die zum Kommentieren von Funktionen und Objekten nützlich sind.
Diese Tools sind hauptsächlich für statische Analysegeräte wie Linters, Code-Vervollständigungsbibliotheken und IDEs konzipiert. Zusätzlich werden Dekorateure zur Durchführung von Laufzeitprüfungen bereitgestellt. Die Überprüfung des Laufzeit-Typs ist in Python nicht immer eine gute Idee, kann jedoch in einigen Fällen sehr nützlich sein.
https://github.com/ceronman/typeannotations
Wie das Schreiben hilft, besseren Code zu schreiben
Durch Eingabe können Sie statische Code-Analysen durchführen, um Typfehler zu erkennen, bevor Sie Ihren Code an die Produktion senden, und um offensichtliche Fehler zu vermeiden. Es gibt Tools wie mypy, die Sie im Rahmen Ihres Software-Lebenszyklus zu Ihrer Toolbox hinzufügen können. mypy kann nach korrekten Typen suchen, indem es teilweise oder vollständig gegen Ihre Codebasis ausgeführt wird. Mit mypy können Sie auch Fehler erkennen, z. B. nach dem Typ None suchen, wenn der Wert von einer Funktion zurückgegeben wird. Durch Eingabe können Sie Ihren Code sauberer machen. Anstatt Ihren Code mithilfe von Kommentaren zu dokumentieren, in denen Sie Typen in einer Dokumentzeichenfolge angeben, können Sie Typen ohne Leistungskosten verwenden.
Clean Python: Elegante Codierung in Python ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Syntax für variable Anmerkungen
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html