嵌套多重继承中的Python super()

嵌套多重继承中的Python super(),python,python-2.7,Python,Python 2.7,我最近在理解以下代码时遇到问题: 我得到的结果是: go A go! go C go! go B go! go D go! 我理解super()在简单多重继承中的用法,但我真的不知道它是如何得到这个结果的。Python使用它来定义顺序(方法解析顺序)。它产生了以下命令: D.__mro__ (__main__.D, __main__.B, __main__.C, __main__.A, builtins.object) 由于您先调用super,然后再调用printing,因此会以相反的顺序

我最近在理解以下代码时遇到问题:

我得到的结果是:

go A go!
go C go!
go B go!
go D go!
我理解super()在简单多重继承中的用法,但我真的不知道它是如何得到这个结果的。

Python使用它来定义顺序(方法解析顺序)。它产生了以下命令:

D.__mro__
(__main__.D, __main__.B, __main__.C, __main__.A, builtins.object)
由于您先调用super,然后再调用printing,因此会以相反的顺序进行打印(类似于递归中的调用顺序)

Python用于定义顺序(方法解析顺序)。它产生了以下命令:

D.__mro__
(__main__.D, __main__.B, __main__.C, __main__.A, builtins.object)
由于您先调用super,然后再调用printing,因此打印的顺序是相反的(类似于递归中的调用顺序)