Python多重继承:使用super()的歧义

时间:2013-08-04 11:55:50

标签: python

下面给出了python中的多重继承片段。在使用super for childMyClass时,我们在代码流中点击了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()

0 个答案:

没有答案