📅  最后修改于: 2023-12-03 15:34:05.132000             🧑  作者: Mango
在Python中,super()
是一个非常特别的函数,它用于调用父类的方法或属性。
super()
函数可以接受两个参数,第一个参数是子类,第二个参数是子类的实例。它返回一个代理对象,可以用于调用父类的方法或属性。
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
return "Unknown sound"
class Dog(Animal):
def __init__(self, name):
super().__init__(name)
def speak(self):
return "Woof!"
dog1 = Dog("Rover")
print(dog1.name) # Output: Rover
print(dog1.speak()) # Output: Woof!
在上面的例子中,我们定义了一个Animal
类和一个Dog
类,Dog
类是Animal
类的子类。Dog
类继承了Animal
类的属性和方法,但它还定义了自己的speak()
方法。在speak()
方法中,我们调用了super().speak()
以调用父类的speak()
方法。
super()
函数只能用于新式类,所以在Python3中是必须的。super()
函数时,子类的方法中的第一个参数必须是self
,表示子类实例对象。super()
函数只能访问父类的公共方法和属性,不能访问私有方法和属性。在Python中,使用super()
函数可以方便地调用父类的方法或属性,这样就避免了重复编写代码,提高了代码的可重用性。