課題:
Python では、囲んでいるクラスのインスタンスを引数として期待し、同じクラスのインスタンスを返すメソッドをタイプヒントする場合、次のようなエラー メッセージが表示される場合があります。エディターまたはコード補完。この問題は、型ヒントの時点でクラスが完全に定義されていない可能性があるという事実に起因します。
解決策:
この課題を解決するには、次のオプションを検討してください。 :
Python バージョン 3.11 および後で、 from と入力して import Self を使用して、次のようにメソッドにアノテーションを付けます。
from typing import Self class Position: def __add__(self, other: Self) -> Self: ...
を含めることで、アノテーションの延期された評価を有効にします。 from __future__ は、モジュールの先頭にアノテーションをインポートします。これにより、クラス名を使用してヒントを入力できるようになります:
from __future__ import annotations class Position: def __add__(self, other: Position) -> Position: ...
3.7 より前の Python バージョンの場合は、型ヒントで囲むクラスを表す文字列を使用します。
class Position: def __add__(self, other: 'Position') -> 'Position': ...制限事項
文字列を使用する場合コード補完で機能する可能性がありますが、このアプローチはすべての Python バージョンで完全にサポートされているわけではなく、静的分析で問題が発生する可能性があることに注意することが重要です。 tools.
推奨アプローチ
最適な結果を得るには、Python 3.11 で from type import Self を使用するか、利用可能な場合は Python 3.7 で from __future__ import アノテーションを使用することをお勧めします。これにより、型ヒントが正しく処理され、最新の言語機能と互換性があることが保証されます。
以上がPython で囲みクラスを使用してメソッドをタイプヒントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。