super()内置函数的理解与应用

2024-01-07 20:54:15

????????super() 是一个内置函数,用于获取当前类的父类。它的主要作用是在子类中调用父类的方法,让你能够在子类中扩展或重写父类的功能。
????????在 Python 中,如果一个类继承自另一个类,子类可以使用 super() 来调用父类的方法。这对于确保继承链中各个类的正确初始化非常有用。
????????具体来说,super() 的使用有两个主要方面:

一、调用父类的构造函数: 在子类的 __init__ 方法中使用 super().__init__(...) 可以调用父类的构造函数,确保父类的初始化逻辑得以执行。这对于子类扩展父类的功能非常有用。

class Parent:
    def __init__(self, name):
        self.name = name

class Child(Parent):
    def __init__(self, name, additional_info):
        super().__init__(name)  # 调用父类的构造函数
        self.additional_info = additional_info

# 创建 Child 实例
child_instance = Child(name="Alice", additional_info="Extra information")

# 打印子类实例的属性
print(f"Name: {child_instance.name}")
print(f"Additional Info: {child_instance.additional_info}")
Name: Alice
Additional Info: Extra information

????????在这个例子中,Child 类继承自 Parent 类。通过使用 super().__init__(name) 在子类的构造函数中调用父类的构造函数,确保了父类 Parent 的初始化逻辑被执行。然后,我们创建了 Child 类的实例,并打印了实例的属性,包括从父类继承的 name 属性和子类自己的 additional_info 属性。

二、调用父类的方法: 在子类中,可以使用 super() 来调用父类的方法,例如在子类中扩展或修改父类的某个方法。

class Animal:
    def speak(self):
        print("Generic animal sound")

class Dog(Animal):
    def speak(self):
        super().speak()  # 调用父类的 speak 方法
        print("Woof! Woof!")

# 创建 Dog 实例
my_dog = Dog()

# 调用 Dog 实例的 speak 方法
my_dog.speak()
Generic animal sound
Woof! Woof!

????????在这个例子中,Animal 类有一个 speak 方法,表示通用的动物声音。然后,Dog 类继承自 Animal 类,并重写了 speak 方法。通过使用 super().speak() 在子类的方法中调用父类的方法,确保了父类 Animal 的 speak 方法被执行。我们创建了 Dog 类的实例,并调用了其 speak 方法,打印了父类和子类的声音。

文章来源:https://blog.csdn.net/weixin_51659315/article/details/135349628
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。