📅  最后修改于: 2023-12-03 15:06:09.205000             🧑  作者: Mango
在Python中,"super"关键字可以用来引用父类中的属性和方法。它可以让我们在子类中使用父类中已定义的方法,而不需要重写这些方法。
在Python中,可以使用如下语句调用父类中的方法:
super().method_name(args)
其中,"method_name"是需要调用的方法名,"args"是需要传递给该方法的参数。
如果需要在子类中重写父类的方法,并且同时需要调用父类的方法,就可以使用"super"关键字来调用父类方法:
class Parent(object):
def method(self, arg):
print("Parent method:", arg)
class Child(Parent):
def method(self, arg):
super().method(arg)
print("Child method:", arg)
在上面的例子中,"Child"类继承自"Parent"类,并且重写了"method"方法。在"Child"类中,我们可以使用"super"关键字调用父类中已经定义的"method"方法,在其基础上添加新的功能。
"super"关键字还可以接受两个参数。这两个参数分别是子类和实例。通过这两个参数,可以使"super"关键字调用不同的父类方法。
例如:
class A:
def __init__(self):
print('A.__init__')
class B(A):
def __init__(self):
super(B, self).__init__()
print('B.__init__')
class C(A):
def __init__(self):
super(C, self).__init__()
print('C.__init__')
class D(B, C):
def __init__(self):
super(D, self).__init__()
print('D.__init__')
在上面的例子中,"D"类继承自"B"和"C"两个类,这两个类都继承自"A"类。如果我们需要调用"A"类的构造方法,就可以使用"super"关键字和两个参数:
super(B, self).__init__()
这个语句表示在"B"类中,调用"C"类的构造方法。而"C"类的构造方法中又调用了"A"类的构造方法。
"super"关键字是一个非常有用的关键字,可以让我们在子类中调用父类中已经定义的方法,从而避免重复编写代码。同时,"super"关键字还可以接受两个参数,可以使其调用不同的父类方法。