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

MROアルゴリズムを詳細にカバーしていると思われるpython PEPがありますが、かなり複雑です。さらに、本 Fluent Python でカバーされています。短編小説は左から右に行くと思います

に切り替えると

class ClassC(ClassB,ClassA):
    pass

きっと変化が見られるはずです。(更新すると、間違いなく変更が表示されます)

また、電話すると

help(c)

mro が表示されるはずです。

于 2016-10-05T13:10:37.557 に答える