ホームページ >バックエンド開発 >Python チュートリアル >Python でメソッドを囲むクラスをタイプヒントするにはどうすればよいですか?

Python でメソッドを囲むクラスをタイプヒントするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-19 11:17:09639ブラウズ

How Can I Type Hint a Method's Enclosing Class in Python?

囲みクラス型によるメソッドの型ヒント

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。