Python 型システム¶
このドキュメントは、Python 型システムの仕様を説明します。
型システムは、型注釈の標準構文を提供し、Python コードをより簡単に静的解析およびリファクタリングし、潜在的な実行時型チェック、および(場合によっては)型情報を利用したコード生成を可能にすることを目的としています。
これらの目標の中で、静的解析が最も重要です。 これには、mypy などのオフライン型チェッカーのサポートや、IDE がコード補完やリファクタリングに使用できる標準表記の提供が含まれます。
目的¶
この仕様は、Python 型システムの完全な説明を提供することを目的としています。 型チェッカーの作成者にとっては、期待されるセマンティクスの完全な説明を提供します。 ライブラリの作成者にとっては、複数の型チェッカーを使用する際に頼りにできる保証を提供します。
型システムは、最初に PEP 484 から始まる一連の PEP で指定されました。 このドキュメントはこれらの PEP を置き換えることを意図しており、最初はさまざまな PEP の仕様セクションを統合することによって作成されました。 ただし、PEP は深さが不均一であり、型システムのすべての側面を完全にカバーしているわけではありません。 これらの問題に対処することは進行中のプロジェクトです。
非目標¶
typing モジュールには、特に get_type_hints() 関数など、実行時型チェックのためのいくつかのビルディングブロックが含まれていますが、特定の実行時型チェック機能を実装するためには、デコレータやメタクラスを使用するなどのサードパーティパッケージが開発される必要があります。 型ヒントを使用したパフォーマンス最適化は、読者の課題として残されています。
また、Python は動的型付け言語のままであり、型ヒントを強制する意図はなく、慣習としても強制することはありません。 ということを強調する必要があります。
解釈¶
「MAY」、「MUST」、「SHOULD」、および「SHOULD NOT」の定義は、RFC 2119 に記載されているように解釈されるものとします。