课程
/后端开发
/Python
/python进阶
按我的理解新式类继承是按照广度优先,例子中的输出应该是:D,B,C,A顺序,而教程中是A,C,B,D,不知道我哪里理解错了?
2016-03-21
源自:python进阶 5-5
正在回答
父类的初始化函数会先执行 ,最后才是 自己的初始化函数
super(D, self).__init__(a)
这句话,即先调用了 B C 的初始化,而B C 的初始化 又调用的 A 的 ,A的初始化有print 'init A...' 所以先输出 init A。 接下来 D 调用B C初始化
那到底是先调用B 或者 C 呢?看这个class D(B, C),右边的参数先传入,即先调用了C。你可以试下B、C换下顺序 就明白了
始终不明白,能否详细讲解下执行顺序。
一轮秋影 提问者
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计