囲みクラス型によるメソッドの型ヒント
Python では、メソッドの囲みクラスの型を表すには、メソッドに応じてさまざまなメソッドを使用できます。 Python バージョンで。
Python 3.7 と 'from future import アノテーション'
from __future__ import アノテーションで「アノテーションの遅延評価」機能を有効にすることで、アノテーションを文字列として保存し、非同期的に評価できます。
from __future__ import annotations class Position: def __add__(self, other: 'Position') -> 'Position': ...
Python 3.11 と 'インポートの入力からSelf'
Python 3.11 では、外側のクラス型を表す Self 型が導入されています。
from typing import Self class Position: def __add__(self, other: Self) -> Self: ...
Python <3.7
の場合3.7 より前の Python バージョンでは、囲むクラスを示すために文字列が使用されます。 type.
class Position: def __add__(self, other: 'Position') -> 'Position': ...<p><strong>前方参照の処理</strong></p> <p>PEP 484 では、前方参照は完全に完全になるまで文字列として表現する必要があると指定されています。 </p> <pre class="brush:php;toolbar:false">class Tree: def __init__(self, left: 'Tree', right: 'Tree'): ...
代替手段
アノテーションを追加するために、囲んでいるクラスのダミー定義を使用したり、クラスにモンキーパッチを適用したりすることは避けてください。これらの方法では、不正確なアノテーションが発生する可能性があります。行動。
以上がPython でメソッドを囲むクラスをタイプヒントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。