如果在子类中要访问父类中的方法,需要使用super函数。该函数返回的对象代表父类对象。super函数可以不带任何参数,也可以带两个参数,第1个参数表示当前类的类型,第2个参数需要传入self。
class A:
def __init__(self, name_a):
super().__init__()
print(name_a)
def info(self):
print("info A")
class B(A):
def __init__(self, name_a, name_b):
super().__init__(name_a)
print(name_b)
def info(self):
print("info B")
class C(B):
def __init__(self, name_a, name_b, name_c):
super().__init__(name_a, name_b)
print(name_c)
# 等价于super().info()
super(C, self).info() # 访问的是B类中的info方法
super(B, self).info() # 访问的是A类中的info方法
c = C("A", "B")
输出结果:
A
B
C
info B
info B
info A