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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!