📜  Python super()(1)

📅  最后修改于: 2023-12-03 15:34:05.132000             🧑  作者: Mango

Python super()

在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()方法。

注意事项
  1. super()函数只能用于新式类,所以在Python3中是必须的。
  2. 当使用super()函数时,子类的方法中的第一个参数必须是self,表示子类实例对象。
  3. super()函数只能访问父类的公共方法和属性,不能访问私有方法和属性。
结论

在Python中,使用super()函数可以方便地调用父类的方法或属性,这样就避免了重复编写代码,提高了代码的可重用性。