1

以下は、Python の多重継承スニペットです。この例では、childMyClass に super を使用しているときに、コード フローで MyCass2 をヒットしました。コード フローに MyClass2 が含まれている理由を説明してください。私の知る限り、python はクラスを左から右に評価するため、ChildMyClass は MyClass1 を呼び出す必要があり、MyClass1 は MyClass を呼び出してそこから戻ります。MyClass2 はどこに登場しますか。

class MyClass(object):
    def __init__(self, data1, data2):
        self.data1=data1
        self.data2=data2
        print "MyClass"
    def f(self):
        print "Hello"

class MyClass1(MyClass):
    def __init__(self, data):
       super(MyClass1, self).__init__(data, 1)
       print "MyClass1"
    def f1(self):
       print "Hello1"

class MyClass2(MyClass):
    def __init__(self, data1, data2):
        super(MyClass2, self).__init__(data1, data2)
        print "MyClass2"
    def f1(self):
        print "Hello2"

class ChildMyClass(MyClass1, MyClass2):
    def __init__(self, data1, data2):
        super(ChildMyClass, self).__init__(data1)
        print "Child"
y=ChildMyClass(8,9)
y.f()
4

0 に答える 0