代码之家  ›  专栏  ›  技术社区  ›  Anton

如何在子类使用@property重新定义属性时修复mypy签名

  •  1
  • Anton  · 技术社区  · 5 年前

    在我的课程中,我有如下类似的课程:

    class Dinosaur:
        def __init__(self, roar: str):
            self.roar = roar
    
    
    class TRex(Dinosaur):
        @property
        def roar(self) -> str:
            return "Roaar!"
    

    error: Signature of "roar" incompatible with supertype "Dinosaur"
    

    我需要保持 roar 作为属性 Dinosaur 把它当作一个 TRex .

    我能在不让mypy忽略这条线的情况下解决这个问题吗? 这是mypy中的一个bug,它没有考虑注释的属性吗 功能?

    0 回复  |  直到 5 年前