Python 3.X (solo) generalizza anche la definizione della funzione per consentire l'annotazione di argomenti e valori di ritorno con valori di oggetto
da utilizzare nelle estensioni .
I suoi dati META da spiegare, per essere più espliciti sui valori delle funzioni.
Le annotazioni sono codificate come :value
dopo il nome dell'argomento e prima di un valore predefinito e come ->value
dopo l'elenco degli argomenti.
Sono raccolti in un __annotations__
attributo della funzione, ma non vengono altrimenti trattati come speciali dallo stesso 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'>}
Fonte: Python Pocket Reference, Quinta Edizione
ESEMPIO:
Il typeannotations
modulo fornisce una serie di strumenti per il controllo del tipo e l'inferenza del tipo del codice Python. Fornisce inoltre una serie di tipi utili per annotare funzioni e oggetti.
Questi strumenti sono progettati principalmente per essere utilizzati da analizzatori statici come linter, librerie di completamento del codice e IDE. Inoltre, vengono forniti decoratori per effettuare controlli di runtime. Il controllo del tipo di runtime non è sempre una buona idea in Python, ma in alcuni casi può essere molto utile.
https://github.com/ceronman/typeannotations
Come la digitazione aiuta a scrivere codice migliore
La digitazione può aiutarti a fare analisi del codice statico per rilevare errori di tipo prima di inviare il codice alla produzione e impedirti alcuni ovvi bug. Ci sono strumenti come Mypy, che puoi aggiungere alla tua cassetta degli attrezzi come parte del tuo ciclo di vita del software. mypy può controllare i tipi corretti eseguendo il tuo codebase parzialmente o completamente. mypy ti aiuta anche a rilevare bug come il controllo del tipo Nessuno quando il valore viene restituito da una funzione. La digitazione aiuta a rendere il codice più pulito. Invece di documentare il codice utilizzando i commenti, in cui si specificano i tipi in un docstring, è possibile utilizzare i tipi senza alcun costo per le prestazioni.
Python pulito: codifica elegante in Python ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Sintassi per annotazioni variabili
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html