0

我试图了解多重继承中的方法解析顺序。这是我正在使用的代码。当我尝试创建类“ClassC”的对象时,只有 ClassA 的构造函数被调用。在这种情况下如何解决方法?

class ClassA:
    def __init__(self):
        print "inside a's init"

class ClassB:
    def __init__(self):
        print "inside b's init"

class ClassC(ClassA,ClassB):
    pass

c = ClassC()

输出:

inside a's init
4

1 回答 1

0

我相信有一个 python PEP 详细介绍了 MRO 算法,但它相当复杂。此外,它在 Fluent Python 一书中进行了介绍。我相信这个短篇故事是从左到右

如果你切换到

class ClassC(ClassB,ClassA):
    pass

我打赌你会看到变化。(更新,你肯定会看到变化)

另外,如果你打电话

help(c)

你应该看到打印出来的mro。

于 2016-10-05T13:10:37.557 回答