zoukankan      html  css  js  c++  java
  • 多继承 mro 继承顺序 与 菱形继承(钻石继承)

    1.普通多继承  python3 默认所有的类都继承 object类  为新式类,继承顺序从左向右

    2.调用mro 返回的是一个继承序列,super的继承顺序严格遵循mro继承序列

    3.钻石继承 :多继承的情况下造成钻石继承

      凡是继承object 对象的类都是新式类,python3默认所有的类都继承object类,都是新式类

      python2 中 有新式类和 经典类 继承object才是经典类

      mro的查找顺序: 新式类:广度优先     经典类:深度优先

     多继承:默认从左向右继承顺序

    # 新式类:
    class A(object):
        # def test(self):
        #     print('from A')
        pass
    
    class B(A):
        # def test(self):
        #     print('from B')
        pass
    
    class C(A):
        # def test(self):
        #     print('from C')
        pass
    class D(B):
        # def test(self):
        #     print('from D')
        pass
    
    class E(C):
        # def test(self):
        #     print('from E')
        pass
    
    class F(D, E):
        # def test(self):
        #     print('from F')
        pass
    
    # F-->D-->B-->E-->C-->A-->object
    # print(F.mro())
    obj = F()
  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/bigbox/p/11939043.html
Copyright © 2011-2022 走看看