class A(object): pass class B(A): pass class C(B): pass class D(object): pass class E(D,C): pass class F(object): pass class G(F): pass class H(C,G): pass class Foo(E,H): pass print(E.__mro__) #按C3算法打印出的继承顺序 # print(H.
pass
class B(A):
pass
class C(B):
pass
class D(object):
pass
class E(D,C):
pass
class F(object):
pass
class G(F):
pass
class H(C,G):
pass
class Foo(E,H):
pass
print(E.__mro__) #按C3算法打印出的继承顺序
# print(H.__mro__)经典类和新式类
py2:
经典类
新式类,如果自己或自己的前辈只要有人继承object,那么此类就是新式类。
py3:
新式类
经典类和新式类的查找成员的顺序不一样。
经典类,一条道走到黑(深度优先)。
新式类,C3算法实现(python2.3更新时c3算法)。
注意事项:
super关键字是遵循__mro__执行顺序。