美文网首页
Python多继承的执行顺序

Python多继承的执行顺序

作者: 南少cc | 来源:发表于2017-04-21 15:26 被阅读0次

经典类和新式类的写法:

<pre>
class A: #经典类(旧式类)写法
..................
class A(object): #新式类写法
..................
</pre>

广度优先

广度优先.jpeg

深度优先

深度优先.jpeg

在Python 3.x中:

<pre>class A(object):
def init(self):
print('--------A')
class B(A):
def init(self):
print('-------B')
class C(A):
def init(self):
print('--------C')
class D(B,C):
pass
# def init(self):
# print('------D')</pre>

经典类和新式类按统一的广度优先的顺序执行,所以D的继承会以广度优先的顺序来执行查找可用的init构造函数,即:D-B-C-A

在Python 2.x中:

经典类写法按深度优先的顺序执行,即D的继承会以深度优先的顺序来执行查找可用的init构造函数,即:D-B-A-C
新式类写法按广度优先的顺序执行,即D的继承会以深度优先的顺序来执行查找可用的init构造函数,即:D-B-C-A

相关文章

  • Python多继承的执行顺序

    经典类和新式类的写法: class A: #经典类(旧式类)写法..................clas...

  • scala-继承与特质

    继承与特质 继承 继承的概念 使用extends关键字: 构造器的执行顺序 Scala在继承的时候构造器的执行顺序...

  • Python 继承顺序

    执行c = C()会输出什么? 按照MRO列表顺序继承,就理解了。 “super() 有个令人吃惊的地方是它并不一...

  • super方法做了什么?

    super方法,可以执行父类中的方法在子类继承多类的情况下,遵循mro算法,顺序关系见执行结果

  • 2018-09-10 day16-类补充总结

    多继承 python支持类的多继承 python进行多继承时,子类能够继承父类的所有字段和方法,但是只能继承第一个...

  • 继承中执行顺序讨论

    继承中,子父类的构造函数(构造函数不被继承)1.子类必须调用父类的构造函数(构造函数不被继承)(1)如果没有写调用...

  • Java 继承类执行顺序

    时不时就忘记 这个顺序,那就把代码敲出来 执行一下。 执行结果

  • Java静态代码块、代码块、构造函数的执行顺序

    执行顺序:静态代码块====》非静态代码块====》构造函数静态代码块只执行一次 扩展:当有继承的时候的执行顺序

  • JAVA多线程入门

    继承Thread父类 线程代码执行顺序和调用顺序无关,例如: 上述代码执行理论上“MyThread”和“mainT...

  • Python 多重继承顺序

    本文借鉴自 http://www.cnblogs.com/panyinghua/p/3283726.html 当类...

网友评论

      本文标题:Python多继承的执行顺序

      本文链接:https://www.haomeiwen.com/subject/ubmdzttx.html