代码之家  ›  专栏  ›  技术社区  ›  Alexander C

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

  •  1
  • Alexander C  · 技术社区  · 8 年前

    我想暗示一下,对于b-instance .duplicate_itself( )返回B实例,而不是A实例。

    class A:
        def duplicate_itself(self) -> 'WHAT SHOULD I WRITE HERE?'
            return self.__class__()         
    
    class B(A):
        pass
    

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

    1 回复  |  直到 8 年前
        1
  •  3
  •   Aran-Fey Kevin    8 年前

    这可以通过附加 TypeVar self :

    T = typing.TypeVar('T')
    
    class A:
        def duplicate_itself(self: T) -> T:
            return self.__class__()