mypy: аргумент метода несовместим с супертипом при переопределении функции _add_ в дочернем классе - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема при переопределении функции _add_ из суперкласса.

Class A:
  def __add__(self, other: Optional['A']) -> 'A':
    if other is None:
      return self
    else:
      whaterver

Class B(A):
    def __add__(
        self, other: Optional['B']
    ) -> 'B':

Это заставляет mypy жаловаться на

Argument 1 of "__add__" is incompatible with supertype "A"; supertype defines the argument type as "Optional[A]"mypy(error)

Не думаю, что это случай для Что является примером принципа подстановки Лискова? , поскольку мы хотим, чтобы функция квадрата обрабатывала только квадрат.

Кто-нибудь знает, как это следует сделать правильно?

Спасибо!

...