У меня проблема при переопределении функции _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)
Не думаю, что это случай для Что является примером принципа подстановки Лискова? , поскольку мы хотим, чтобы функция квадрата обрабатывала только квадрат.
Кто-нибудь знает, как это следует сделать правильно?
Спасибо!