当前位置 : 主页 > 编程语言 > python >

【Python】多继承之C3算法

来源:互联网 收集:自由互联 发布时间:2022-06-24
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.
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.__mro__)经典类和新式类
py2:
经典类
新式类,如果自己或自己的前辈只要有人继承object,那么此类就是新式类。
py3:
新式类

经典类和新式类的查找成员的顺序不一样。
经典类,一条道走到黑(深度优先)。
新式类,C3算法实现(python2.3更新时c3算法)。
注意事项:
super关键字是遵循__mro__执行顺序。


【本文转自:国外高防服务器 http://www.558idc.com/usa.html转载请说明出处】
上一篇:【Python】生成日志
下一篇:没有了
网友评论