Я не совсем понимаю, почему mypy возвращает здесь ошибку Signature of "foo" is incompatible with supertype "Base"
. Кажется, что возвращаемые типы и типы аргументов совпадают.
from typing import NoReturn, Union
class Base():
def foo(self, *args: str) -> Union[NoReturn, str]:
raise NotImplementedError
class A(Base):
def foo(self, x: str) -> str:
return x
Любая помощь приветствуется, спасибо!
ИЗМЕНИТЬ Я изменил A.foo
на следующее:
def foo(self, *args: str) -> str:
x = args[0]
return x
Теперь ошибка mypy исчезла. Однако в этой реализации не возникнет ли та же проблема, если в Base
есть NoReturn
, а переопределенная функция может вернуть только str
?