Как исправить подпись mypy, когда подкласс переопределяет атрибут, используя @property - PullRequest
0 голосов
/ 29 января 2019

В моей программе есть классы, подобные следующим:

class Dinosaur:
    def __init__(self, roar: str):
        self.roar = roar


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

Mypy возвращает следующую ошибку:

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

Мне нужно сохранить roar как атрибут в Dinosaur и сохранить ее как аннотированную в свойстве функцию в TRex.

Можно ли это исправить, не прибегая к тому, чтобы mypy игнорировала строку?Является ли это ошибкой в ​​mypy, когда она не учитывает функции, аннотированные свойствами?

...