为了账号安全,请及时绑定邮箱和手机立即绑定

输出顺序不理解

按我的理解新式类继承是按照广度优先,例子中的输出应该是:D,B,C,A顺序,而教程中是A,C,B,D,不知道我哪里理解错了?

正在回答

3 回答

父类的初始化函数会先执行  ,最后才是 自己的初始化函数

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换下顺序 就明白了

1 回复 有任何疑惑可以回复我~

始终不明白,能否详细讲解下执行顺序。

0 回复 有任何疑惑可以回复我~

父类的初始化函数会先执行  ,最后才是 自己的初始化函数

0 回复 有任何疑惑可以回复我~
#1

一轮秋影 提问者

始终不明白,能否详细讲解下执行顺序
2016-03-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

输出顺序不理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信