Pythonのメソッド内でのクラス型ヒント - TechRepublic

Pythonのメソッド内でのクラス型ヒント - TechRepublic
  • Python のメソッド内での独自のクラス型ヒント

    Pythonの型ヒントは、PyCharmを使う上で非常に便利です。しかし、クラスのメソッドでそのクラス独自の型を使用しようとしたときに、奇妙な動作に遭遇したことがあります。

    例えば:

    クラス Foo:

    def __init__(self, id):
    self.id = id
    を渡す

    def __eq__(self, other):
    return self.id == other.id
    ここで、other.と入力してもプロパティidが自動的に提示されません。__eq__を次のように定義することでこの問題を解決したいと考えていました。

    def __eq__(self, other: Foo):
    return self.id == other.id
    しかし、これはNameError: name 'Foo' is not defined というエラーを引き起こします。しかし、メソッド内で型を使用すると、other. を書いた後にidが渡されます。

    def __eq__(self, other):
    other: Foo
    return self.id == other.id
    質問なのですが、メソッド内では可能なのに、なぜクラス独自の型をパラメータの型ヒントに使用できないのでしょうか?
    Python https://bit.ly/3iZ3cZD

Tagged: