我应该如何为返回cls
实例的@classmethod
添加注释?以下是一个不好的示例:
class Foo(object):
def __init__(self, bar: str):
self.bar = bar
@classmethod
def with_stuff_appended(cls, bar: str) -> ???:
return cls(bar + "stuff")
这会返回一个 Foo
,但更准确地返回调用它的任何子类,因此用 -> "Foo"
注释不够好。
typing.Self
,如果不需要向后兼容,则可以参考此答案中的第二个示例(即使用-> Self:
)。 - metatoaster