注釈と入力には注意してください。484 で説明されているアイデアはまったく新しいものであり、typing
モジュールに実装されています。そのモジュールは Python3.5 でのみ利用可能です (最新のものはPy2 と Py3 の両方でtyping
利用可能です)。pip
https://docs.python.org/3/library/typing.html
あなたが引用したメモは、484 の次のセクションからのものです。
静的型チェックの使用を Python 3.5 および古いバージョンに開放するには、統一された名前空間が必要です。この目的のために、標準ライブラリには、typing と呼ばれる新しいモジュールが導入されています。
メモにリストされているものは、実際のオブジェクト クラス (組み込みまたは from collections
) ではなく、注釈型です。2 つを混同しないでください。
関数 (および型名)はDict
, List
, ,です。つまり、辞書を作成するには、使用するか、使用しないかを指定します。Set
FrozenSet
dict
list
set
frozenset
dict()
{}
Dict
注釈は 3.0 の新機能です (2.n にはまったくありません)。通常のインタープリターでは、関数の__annotations__
辞書に入力するだけです。インタプリタには、注釈を使用または必要とするものは何もありません。
http://mypy-lang.org/ は、実験的な型付けチェッカーであると説明しています。484 などとの互換性を確認するには、ドキュメントを参照する必要があります。
https://docs.python.org/3/library/collections.abc.html#module-collections.abc にはいくつかの抽象的な定義があり、それをtyping
使用していると思います。私はこれらを使用したことがありません。それらは主に、「通常の」ユーザーではなく、新しいクラスのオブジェクトを開発する人々を対象としています。
この質問のtyping
タグはおそらく良い考えではありません。フォロワーが少なく、あまりにも一般的です。この Python モジュールを参照していません。
[python] 484
このスタイルの注釈を扱う他の SO の質問を検索してください。
https://github.com/python/typing -typing
開発リポジトリ。
このリポジトリでは、ファイル (python2 バックポート) にFrozenSet
定義がありますが、 . その意味がよくわかりません。python2/typing.py
src/typing.py