让我们说,我有以下两个类:
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属性?
答案 0 :(得分:5)
如果您只想设置j
属性,则只需拨打B.__init__
:
class C(A, B):
def __init__(self):
B.__init__(self,4)
如果您想手动调用A
和B
的{{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的继承和使用的很多。