先来看一下语法,Python多重继承的语法很简单:
class subClass(Base1,Base2)
这相当于你创建了一个subClass的类,让它同时继承Base1,Base2,一旦你在subClass...
迷一样的MRO
经典类和新式类的MRO区别
坑1-多重继承内的初始化顺序
先看一个简单的例子,有一个子类subClass,继承3个父类BaseClass,TimesTwo,PlusFive.看看这样的结构内的类的初始化顺序是怎么样的...我们发现虽然我们多重继承的顺序是BaseClass,PlusFive,TimesTwo,但是实际运行的结果:却还是是BaseClass,TimesTwo,PlusFive,奇怪为啥会这样呢,我们接着往下看...正确的结果我们是想1*2+5=7,但是实际是6,为啥呢
因为菱形继承的问题,在调用第二个超类的构造器PlusFive.__init__()的时候, 它会再度去调用BaseClass....或者可以试试组合,组合则是利用模块和别的类中的函数调用实现了相同的目的