【发布时间】:2017-11-22 06:07:31
【问题描述】:
我应该如何注释一个返回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 的任何子类,因此使用-> "Foo" 进行注释还不够好。
【问题讨论】:
-
-> 'Foo'是正确的,这就是您可以(或应该)强制执行的返回值。