У меня есть родительский класс, который что-то делает, и два дочерних класса, которые оборачивают метод ортогональными способами. Когда я пытаюсь объединить два дочерних класса, mypy жалуется на следующую ошибку.
Определение «run» в базовом классе «Foo» несовместимо с
определение в базовом классе "Бар"
Как эти два класса "несовместимы" и как мне изменить мой код, чтобы успокоить mypy? Могу ли я сделать это без
class Parent:
def run(self, a, b):
pass
class Foo(Parent):
def run(self, a, b, foo=None, **kwargs):
print('foo', foo)
super().run(a, b, **kwargs)
class Bar(Parent):
def run(self, a, b, bar=None, **kwargs):
print('bar', bar)
super().run(a, b, **kwargs)
class C(Foo, Bar):
pass