如何提示返回调用它的派生类实例的基类函数?

时间:2018-06-05 09:56:47

标签: python python-3.x pycharm type-hinting

我想暗示对于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特定的解决方案,请随时写一个答案

1 个答案:

答案 0 :(得分:3)

这可以通过将TypeVar附加到self

来完成
T = typing.TypeVar('T')

class A:
    def duplicate_itself(self: T) -> T:
        return self.__class__()