super顺序
class S():
def go(self):
print ("go s go!")
def stop(self):
print ("stop A stop!")
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):
print("开始了B!")
super(B, self).go()
print ("go B go!")
class C(A):
def go(self):
print("开始了C!")
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):
print('D开始了 啊 啊')
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!")
class E(B,C):
pass
a = A()
b = B()
c = C()
d = D()
e = E()
# 说明下列代码的输出结果
b.go()
输出:开始了B!
go A go!
go B go!
print('---b.go-----')
print('---c.go-----')
c.go()
输出:开始了C!
go A go!
go C go!
print('---d.go 开始-----')
d.go()
输出:
D开始了 啊 啊
开始了B!
开始了C!
go A go!
go C go!
go B go!
go D go!
print(D.mro())
输出: [<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]
print('---d.go 结束----')
e.go()
开始了B!
开始了C!
go A go!
go C go!
go B go!
print(E.mro())
[<class '__main__.E'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]
print('----v.stop----')
c.stop()
输出: stop A stop!
stop C stop!
写入自己的博客中才能记得长久
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!