Когда я использую наследование, mypy не жалуется, когда я заменяю classmethod
на staticmethod
:
class A:
@classmethod
def f(cls, a: int) -> int:
return a
class B(A):
@staticmethod
def f(a: int) -> int:
return a+1
Однако, если я использую миксин, чтобы сделать то же самое:
class C:
@staticmethod
def f(a: int) -> int:
return a+1
class D(C, A):
pass
mypy выдает следующую ошибку (в строке class D(C, A):
):
Definition of "f" in base class "C" is incompatible with definition in base class "A"
Почему это так?