在Python2中,您需要编写:
class C(P):
def __init__(self, a, b, c):
super(C, self).__init__(a, b)
self.c = c
在使用super
函数时,第一个参数应为子类,第二个参数是你想要将其作为父类实例引用的对象实例。
在Python 3中,super
函数具有超级能力,您可以编写:
class C(P):
def __init__(self, a, b, c):
super().__init__(a, b)
self.c = c
示例:
obj = C(1, 2, 3)
print(obj.a, obj.b, obj.c) # 1 2 3
回复您的评论:
您可以使用*args或**kwargs语法来实现这种效果,例如:
class C(P):
def __init__(self, c, *args):
super(C, self).__init__(*args)
self.c = c
obj = C(3, 1, 2)
print(obj.a, obj.b, obj.c)
或者
class C(P):
def __init__(self, c, **kwargs):
super(C, self).__init__(**kwargs)
self.c = c
obj = C(3, a=1, b=2)
print(obj.a, obj.b, obj.c)
obj = C(a=1, b=2, c=3)
print(obj.a, obj.b, obj.c)