Python super()函数
super()
函数用于调用父类的方法。当子类重写了父类的方法后,如果想要在子类中调用父类的方法,就可以使用super()
函数。使用super()
函数可以避免硬编码父类的名称,使代码更具可读性和可维护性。
super()函数语法
其语法如下:
super([type[, object-or-type]])
其中:
type
参数是子类的类型object-or-type
参数是子类的实例或类;如果省略object-or-type
参数,则默认为当前作用域中的self
或cls
。
super()函数示例
下面是一个示例,演示如何在子类中使用super()
函数调用父类的方法:
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError('Subclass must implement abstract method')
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
def speak(self):
return 'woof'
class Cat(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
def speak(self):
return 'meow'
dog = Dog('Rufus', 'labrador')
cat = Cat('Fluffy', 'persian')
print(dog.speak()) # 输出 'woof'
print(cat.speak()) # 输出 'meow'
在上面的示例中,我们定义了一个 Animal 类和两个子类 Dog 和 Cat。Animal 类中有一个 speak() 方法,但是该方法没有实现,因此是一个抽象方法。子类 Dog 和 Cat 分别重写了 speak() 方法,并实现了自己的逻辑。在子类的构造函数中,我们使用了 super() 函数调用了父类的构造函数,以便正确地初始化父类的属性。在子类的方法中,我们使用了 super() 函数调用了父类的方法,以便在父类的基础上进行扩展。