面向对象的多继承 a. 先找左再找右 class A(object): pass class B(object): def f1(self): print('B') class C(A, B): pass obj = C() obj.f1() b. 经典类和新式类 py2: 经典类: 新式类: 如果自己或自己的前辈只要有人继承了object, name此类就是新式类 py3: 新式类 经典类和新式类的查找成员的顺序不一样. 经典类, 一条道走到黑(深度优先). 新式类, C3算法实现(python2.3更新时c3算法) Foo + (C,D,F,G) + (G,D,G,W) + (I,G,D,G,W) FOO, 获取第一个表头 和 其他表位进行比较 不存在则拿走 如果存在, 则放弃,然后获取第二个表的表头再次和其他表的表尾进行比较 简答, 经典类, 一条道走到黑(深度优先) 新式类, 留个根.(科学c3算法) 注意事项: super是遵循__mro__执行顺序