親のinitメソッドを呼び出す複数のスーパークラスを持つサブクラスで問題が発生しています。バインドされていない__init__
親のインスタンスが必要であるというエラーが表示されますが、子のインスタンスが取得されました。StackOverflow に関する他のいくつかの質問は、これが複数回定義されている親クラスからのものであることを指摘しており、インタープリターに入力された単純なスクリプトで確認しました。
注:これは私が質問しているコードではありません。これは、Base クラスが再定義され、継承されたクラスが正しく機能しなくなるという問題を説明するための例です。
>>> class Base(object):
... def __init__(self):
... print "Base!"
...
>>> class Inherited(Base):
... def __init__(self):
... Base.__init__(self)
... print "Inherited"
...
>>> class Base(object):
... def __init__(self):
... print "Base!"
...
>>> Inherited()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in __init__
TypeError: unbound method __init__() must be called with Base instance as first argument (got Inherited instance instead)
>>>
私の質問は、基本クラスが複数回定義されないようにするにはどうすればよいですか? 私が取り組んでいるプロジェクトには複数のファイルとインポートがあるため、すべてをリファクタリングしてファイルを 1 回だけ含めることは困難です。