0
私は2つの他のクラスから継承するクラスを持っていますが、そのうちの1つはinit引数を受け入れます。親クラスを適切に初期化するにはどうすればよいですか?親init関数が異なる数の引数を受け入れるときにPythonで多重継承を処理する方法
これまでのところ私が持っている:
class A(object):
def __init__(self, arg1):
self.arg1 = arg1
class B(object):
def __init__(self):
pass
class C(A, B):
def __init__(arg1):
super(C, self).__init__(arg1)
しかし、これはB
としてTypeError
をスローするには、引数を受け取りません。
B
はC
の適切な親ですが、A
は、プロジェクトの多くのクラスが機能を継承しているmixinです。
複数の継承が実用的であるためには、少なくとも1つの親が実際にそれ用に設計されている必要があります。それはAかBのどちらかがそれのために設計されているようには見えません。 – user2357112
あなたはPythonのMROについて読むべきです。http://stackoverflow.com/questions/1848474/method-resolution-order-mro-in-new-style-python-classes – giaosudau
@giaosudau私は、実際にはそうでした。概念的には私はそれを得るが、構文的には私が達成しようとしているものを実装する方法を理解していない。 – Jonline