Python 如何在这种复杂的多重继承情况下使用super()?

Python 如何在这种复杂的多重继承情况下使用super()?,python,python-3.x,multiple-inheritance,python-3.3,Python,Python 3.x,Multiple Inheritance,Python 3.3,我正在编写一个库,该库为两个现有基类中的每个基类提供额外的功能 这里不是用文字来解释排列,而是一张图表: 和最小代码: classbase0: 通过 类Base1(Base0): 定义初始化(self,*args,**kwargs): super() self.foo=something() Base2类(Base0): 通过 类Mixin: def ____;初始(自,条形): self.bar=bar #更多代码 类别Child1(基本1,混合): 定义初始化(self,*args,**k

我正在编写一个库,该库为两个现有基类中的每个基类提供额外的功能

这里不是用文字来解释排列,而是一张图表:

和最小代码:

classbase0:
通过
类Base1(Base0):
定义初始化(self,*args,**kwargs):
super()
self.foo=something()
Base2类(Base0):
通过
类Mixin:
def ____;初始(自,条形):
self.bar=bar
#更多代码
类别Child1(基本1,混合):
定义初始化(self,*args,**kwargs):
Base1.\uuuuu初始化(self,*args,**kwargs)
Mixin.\uuuu初始化(self,self.foo的某些函数)
儿童2类(基本2,混合):
定义初始化(self,*args,**kwargs):
Base2.\uuuuuuuuuuuuuu初始值(self,*args,**kwargs)
Mixin.\uuuu init\uuuuuuu(self,something\u other())
Base
类不在我的控制范围之内。我编写了
Mixin
Child
类。我的库的用户将对
子类
类进行子类化,因此继承是合理和正确的是非常重要的

我想做的是在
Child
类中使用
super()。这是非常重要的原因,因为在
Child1
中,只有在运行
Base1
初始值设定项之后才能确定传递给
Mixin
初始值设定项的值


设置这个的最简单/最合理的方法是什么?

我认为您拥有的是
Childx
类实现其
\uuuuu init\uuuuu()
方法的唯一方法。这听起来有点像
Mixin
的功能不应该用Mixin实现。如果您真的希望它是一个mixin,那么最好将该初始化放在
\uuu init\uuuu
方法之外的某个地方-您不希望它中断
超级链。@user2357112supportsMonica如何实现它?对于“将该初始化放在其他地方”方法,只是子类
\uuu init\uuu
调用的另一个名称不同的方法。可以称之为
set\u bar
\u mixin\u init
或其他什么。对于“非mixin”方法,它取决于此mixin的实际功能。