如何在Python中调用特定的基类方法?

时间:2010-09-06 13:40:33

标签: python

让我们说,我有以下两个类:

class A(object):
    def __init__(self, i):
        self.i = i
class B(object):
    def __init__(self, j):
        self.j = j

class C(A, B):
    def __init__(self):
        super(C, self).__init__(self, 4)
c = C()

c只会设置i属性,而不是j。 我应该写什么来设置两个属性/只有j属性?

2 个答案:

答案 0 :(得分:5)

如果您只想设置j属性,则只需拨打B.__init__

class C(A, B):
    def __init__(self):
        B.__init__(self,4)

如果您想手动调用AB的{​​{1}}方法,那么 当然你可以这样做:

__init__

使用class C(A, B): def __init__(self): A.__init__(self,4) B.__init__(self,4) a bit tricky(特别是,请参阅标题为“参数传递,argh!”的部分)。如果您仍想使用super,可以采用以下方法:

super

答案 1 :(得分:2)

检查此链接Things to Know About Python Super

上面的链接解释了关于super的继承和使用的很多。