面向对象的多继承

    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__执行顺序
01-18 07:36