59

@classmethodのインスタンスを返すにどのように注釈を付ける必要がありますclsか? 悪い例を次に示します。

class Foo(object):
    def __init__(self, bar: str):
        self.bar = bar

    @classmethod
    def with_stuff_appended(cls, bar: str) -> ???:
        return cls(bar + "stuff")

これは を返しますがFoo、より正確には this のどのサブクラスFooが呼び出されても返すため、 で注釈を付けるだけで-> "Foo"は十分ではありません。

4

2 に答える 2