class C0:
name='C0'
class C1:
num=1
class C2(C0):
num=2
class C3:
name='C3'
class C4(C1,C2,C3,C0):
pass
t=C4()
print('C4的name是:'+t.name)
print('C4的num是:'+ str(t.num) )
#为什么t.name不是C0,而是C3??
#如果把C4继承中的父类,C0去掉,那么C4的那么值又通过C2继承了C0的值‘‘C0’
从左到右,如果类中属性已有,不会被后面类中相同属性覆盖,也就是说C3有name属性了,C0也有,不会被C0重写。
不知道具体原因,但是可以看出,在继承父类属性时,同一属性只接收一次继承(如C3的name不会被C0的name覆盖),但父类中继承其他类的属性(如C2中继承的C0的name属性),会被同级别中其他父类的属性覆盖(C3的name属性把C2从C0中继承的name属性的内容覆盖了)。