首页 > 解决方案 > 如何提示返回调用它的派生类实例的基类函数?

问题描述

我想暗示 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

顺便说一句,我正在使用 PyCharm,所以如果你知道一些 PyCharm 特定的解决方案,请随时写一个答案

标签: pythonpython-3.xpycharmtype-hinting

解决方案


这可以通过附加到来TypeVar完成self

T = typing.TypeVar('T')

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

推荐阅读