Python中多重继承的方法解析

时间:2016-10-05 13:06:38

标签: python multiple-inheritance method-resolution-order

我尝试了解多个内容中的方法解析顺序。 这是我正在使用的代码。当我尝试创建类' 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

1 个答案:

答案 0 :(得分:0)

我认为有一个python PEP详细介绍了MRO算法,但它相当复杂。此外,它还包含在Fluent Python一书中。我相信短篇小说是从左到右

如果你切换到

class ClassC(ClassB,ClassA):
    pass

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

如果你打电话

help(c)

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