python多继承顺序_python 多继承顺序的问题?

一、如图中所说:按照深度遍历,其顺序为[D,B,A,object,C,A,object],重复类只保留最后一个,因此变为[D,B,C,A,object]。为什么顺序不是[D,B,A,object,C]?二、下面这个代码:classA(...

一、如图中所说:按照深度遍历,其顺序为 [D, B, A, object, C, A, object],重复类只保留最后一个,因此变为 [D, B, C, A, object]。为什么顺序不是[D,B,A,object,C]?二、下面这个代码:class A(): def go(self): print ("go A go!") def stop(self): print ("stop A stop!") def pause(self): raise Exception("Not Implemented")class B(A): def go(self): super(B, self).go() print ("go B go!")class C(A): def go(self): super(C, self).go() print ("go C go!") def stop(self): super(C, self).stop() print ("stop C stop!")class D(B,C): def go(self): super(D, self).go() print ("go D go!") def stop(self): super(D, self).stop() print ("stop D stop!") def pause(self): print ("wait D wait!") d = D()>>>go A go! go C go! go B go! go D go!为什么不是go A go!go B go!go C go!go D go!

代码重放下

class A():

def go(self):

print ("go A go!")

def stop(self):

print ("stop A stop!")

def pause(self):

raise Exception("Not Implemented")

class B(A):

def go(self):

super(B, self).go()

print ("go B go!")

class C(A):

def go(self):

super(C, self).go()

print ("go C go!")

def stop(self):

super(C, self).stop()

print ("stop C stop!")

class D(B,C):

def go(self):

super(D, self).go()

print ("go D go!")

def stop(self):

super(D, self).stop()

print ("stop D stop!")

def pause(self):

print ("wait D wait!")

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值