在Python中,super()
是一个内置函数,用于调用父类的方法。它通常用于子类的构造函数中,以便在子类中调用父类的构造函数来初始化父类的属性。
使用super()
时,可以在子类中调用父类的方法,也可以在子类中调用父类的属性。它的常见用法有以下两种:
super().__init__()
来调用父类的构造函数,以便初始化父类的属性。这样可以避免代码重复,并确保父类的初始化逻辑被正确执行。class Parent:
def __init__(self, name):
self.name = name
class Child(Parent):
def __init__(self, name, age):
super().__init__(name) # 调用父类的构造函数
self.age = age
child = Child("Alice", 10)
print(child.name) # 输出:Alice
print(child.age) # 输出:10
super().method()
来调用父类的方法。这样可以继承父类的行为,并在子类中添加特定的逻辑。class Parent:
def greet(self):
print("Hello from Parent")
class Child(Parent):
def greet(self):
super().greet() # 调用父类的方法
print("Hello from Child")
child = Child()
child.greet() # 输出:Hello from Parent Hello from Child
需要注意的是,super()
并不是必须使用的,特别是在单继承的情况下。在这种情况下,直接通过父类的类名调用方法即可。但当存在多继承时,使用super()
可以确保方法调用的顺序遵循类的继承顺序,避免出现不可预期的错误。