我想暗示对于B-instance .duplicate_itself(
)返回B-instance,而不是A-instance。
class A:
def duplicate_itself(self) -> 'WHAT SHOULD I WRITE HERE?'
return self.__class__()
class B(A):
pass
BTW我正在使用PyCharm,如果你知道一些PyCharm特定的解决方案,请随时写一个答案
答案 0 :(得分:3)
这可以通过将TypeVar
附加到self
:
T = typing.TypeVar('T')
class A:
def duplicate_itself(self: T) -> T:
return self.__class__()