何かを行う親クラスと、直交する方法でメソッドをラップする 2 つの子クラスがあります。2 つの子クラスを結合しようとすると、mypy で次のエラーが発生します。
基本クラス「Foo」の「run」の定義は、基本クラス「Bar」の定義と互換性がありません
2 つのクラスはどのように「互換性がない」のですか? 作らなくてもいいの?
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