Python 3.X (tylko) również uogólnia definicję funkcji, aby umożliwić przypisywanie argumentów i wartości zwracanych do wartości obiektu
do użycia w rozszerzeniach .
Jego META-dane do wyjaśnienia, aby bardziej szczegółowo opisać wartości funkcji.
Adnotacje są kodowane :value
po nazwie argumentu i przed wartością domyślną oraz ->value
po liście argumentów.
Są one gromadzone w __annotations__
atrybucie funkcji, ale w innym przypadku nie są traktowane jako specjalne przez sam Python:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
Źródło: Python Pocket Reference, Fifth Edition
PRZYKŁAD:
Plik typeannotations
Moduł dostarcza zestaw narzędzi do sprawdzania typu i rodzaju wnioskowania kodu Pythona. Zawiera również zestaw typów przydatnych do opisywania funkcji i obiektów.
Narzędzia te są przeznaczone głównie do użytku w analizatorach statycznych, takich jak lintery, biblioteki uzupełniania kodu i środowiska IDE. Dodatkowo dostępne są dekoratory do przeprowadzania kontroli w czasie wykonywania. Sprawdzanie typów w czasie wykonywania nie zawsze jest dobrym pomysłem w Pythonie, ale w niektórych przypadkach może być bardzo przydatne.
https://github.com/ceronman/typeannotations
Jak pisanie pomaga pisać lepszy kod
Wpisywanie może pomóc w przeprowadzeniu statycznej analizy kodu w celu wykrycia błędów typu przed wysłaniem kodu do produkcji i uniknięcia niektórych oczywistych błędów. Istnieją narzędzia takie jak mypy, które możesz dodać do swojego zestawu narzędzi w ramach cyklu życia oprogramowania. mypy może sprawdzić poprawne typy, uruchamiając częściowo lub całkowicie w oparciu o Twój kod. mypy pomaga również wykrywać błędy, takie jak sprawdzanie typu None, gdy wartość jest zwracana przez funkcję. Wpisywanie pomaga uczynić kod bardziej przejrzystym. Zamiast dokumentować kod za pomocą komentarzy, w których określasz typy w łańcuchu dokumentów, możesz używać typów bez żadnych kosztów wydajności.
Czysty Python: eleganckie kodowanie w Pythonie ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Składnia adnotacji zmiennych
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html