我无法在 python2.X 的多重继承中初始化不同 类 的数据成员

i am not able to initiialise data members of different classes in multiple inheritance in python2.X

我有一个这样的代码

class a(object):
    def __init__(self, x, y):
        self.x=x
        self.y=y
        super(a, self).__init__()

    def displayA(self):
        print self.x
        print self.y

class b(object):
    def __init__(self, name):
        self.name=name
        super(b, self).__init__()

    def displayB(self):
        print self.name


class c(a,b):
    def __init__(self, p,x,y,name):
        self.p = p
        b.name=name     #**this line confuses me**
        super(c,self).__init__(x,y)

    def displayC(self):
        print self.p

v = c(10, 12, 78, 'abc')
v.displayC()
v.displayA()
v.displayB()

我想通过subclassc初始化不同classes(a&b)的数据成员,但是super()只访问了classa,但是不知何故,我可以在 c 的 init() 中初始化 class b 数据成员,如 b.name=name,然后我可以在对象中传递参数。 我的问题是,如果我不这样做,我就不能在 c 的对象中传递参数。 帮帮我!

尝试:

    a.__init__(self,x,y)
    b.__init__(self,name)

编辑:

好的,错过了关于 b.name 的问题。删除该行。在这种情况下,b 是 class。 b.__init__ 是一种特殊约定,用于显示您愿意调用哪个父构造函数。

而且这不是重复的。希望,现在它有所帮助。

编辑2:

class a(object):
    def __init__(self, x, y):
        self.x=x
        self.y=y
        print("a " + str(x) + " - " + str(y) )

    def displayA(self):
        print self.x
        print self.y

class b(object):
    def __init__(self, name):
        self.name=name
        print("b " + name )

    def displayB(self):
        print self.name


class c(a,b):
    def __init__(self, p,x,y,name):
        self.p = p
        a.__init__(self,x,y)
        b.__init__(self,name)

    def displayC(self):
        print self.p

v = c(10, 12, 78, 'abc')
v.displayC()
v.displayA()
v.displayB()

结果:

a 12 - 78
b abc
10
12
78
abc

你能编辑一下你的初始 post 并告诉我问题是什么吗?对我来说这就是答案,而且是从起点...