在Python中,super()是一个内置函数,用于调用父类的方法。在面向对象编程的上下文中,它允许您调用父类的方法或构造函数,从而访问其功能。通常,在子类的构造函数(__init__方法)中使用super()函数来初始化父类的属性。
简单的例子:有一个基类Animal和一个派生类Dog。Animal有一个属性species,而Dog在初始化时通过super().__init__调用父类的构造函数来设置species属性。
class Animal:
def __init__(self, species):
self.species = species
class Dog(Animal):
def __init__(self, breed, color):
# 调用父类的构造函数
super(Dog, self).__init__('Canine')
# 设置子类特有的属性
self.breed = breed
self.color = color
# 创建一个Dog实例
my_dog = Dog(breed='Labrador', color='Golden')
# 打印输出
print("Dog Instance:")
print("Species:", my_dog.species) # 从父类继承的属性
print("Breed:", my_dog.breed) # 子类特有的属性
print("Color:", my_dog.color) # 子类特有的属性
Dog Instance:
Species: Canine
Breed: Labrador
Color: Golden
在这个例子中:
Animal类有一个__init__构造函数,负责设置species属性。
Dog类是Animal的子类,通过super(Dog, self).__init__('Canine')调用了父类的构造函数,确保在初始化Dog实例时,species属性也被设置为'Canine'。
Dog类还有自己的两个属性breed和color,这些属性在Dog类的构造函数中进行设置。
可以看到super()的作用是在派生类中调用父类的构造函数,以确保子类在初始化时可以继承父类的一些属性和行为。