Fate attenzione con le annotazioni e digitando Le idee discusse in 484 sono nuove di zecca e implementate nel modulo typing
.Tale modulo è disponibile solo in Python3.5 (l'ultimo typing
è disponibile anche da pip
per Py2 e Py3).
https://docs.python.org/3/library/typing.html
quella nota che è stato citato da una sezione in 484 che inizia:
Per aprire l'uso di tipo statico controllo per Python 3.5 e versioni precedenti, uno spazio dei nomi divisa è necessario. A tal fine, viene introdotto un nuovo modulo nella libreria standard chiamato digitando.
Le cose che gli elenchi di note sono tipi di annotazione, non classi di oggetto reali (incorporate o da collections
). Non confondere i due.
noti che Dict
, List
, Set
e FrozenSet
sono tutti in maiuscolo, dove come le funzioni (ei nomi) sono di tipo dict
, list
, set
, frozenset
. In altre parole, per creare un dizionario si utilizza dict()
o {}
, non Dict
.
Le annotazioni sono nuove a 3.0 (non in 2.n). In un normale interprete tutto ciò che fanno è popolare nel dizionario __annotations__
della funzione. Non c'è niente nell'interprete che usi o richieda annotazioni.
http://mypy-lang.org/ si descrive come un controllore di dattilografia sperimentale. È necessario consultare la documentazione per vedere quanto sia compatibile con 484 ecc.
https://docs.python.org/3/library/collections.abc.html#module-collections.abc ha alcune definizioni astratte, che credo utilizzino typing
. Non li ho mai usati. Sono principalmente per persone che sviluppano nuove classi di oggetti, non utenti "regolari".
Il tag typing
per questa domanda non è probabilmente una buona idea. Non ha molti seguaci ed è troppo generico. Non si riferisce a questo modulo Python.
Ricerca per [python] 484
per altre domande SO relative a questo stile di annotazioni.
https://github.com/python/typing - il repository di sviluppo typing
.
In questo repository, esiste una definizione FrozenSet
nel file python2/typing.py
(il backport python2), ma non in src/typing.py
. Non sono sicuro del significato di ciò.
Ciao, grazie per la tua risposta. Ora ho idee più chiare (sapevo della differenza tra tipi di annotazioni e oggetti, ma non sapevo sui moduli di digitazione di typy vs python3.5 di mypy). Tuttavia, ho esaminato entrambe le documentazioni e non sono riuscito a trovare un riferimento a FrozenSet, menzionato in PEP 484. Mi manca qualcosa? – marcotama
Sembra che non abbiano aggiunto 'FrozenSet' a' typing'. Molte delle classi in 'typing' eseguono il mapping su' collections.abc', che ha cose come 'MutableSet' e' AbstractSet', ma non 'FrozenSet'. Quindi a questo punto 'FrozenSet' è solo un'idea nel PEP, niente di più. – hpaulj
C'è un repository github per il modulo 'typing'. Esploralo per vedere cosa potrebbe essere aggiunto in futuro. – hpaulj