📅  最后修改于: 2023-12-03 15:25:47.894000             🧑  作者: Mango
在面向对象编程中,经常需要使用继承来实现代码的复用,通过创建一个新的类来继承已有的类,可以将已有类的属性和方法集成到新的类中。
但是,当继承一个类时,如果需要给子类设置自己的构造函数时,可能需要在子类的构造函数中重新定义已有类的属性和方法。这样不仅繁琐,而且容易出错。
为了避免这种重复的工作,我们可以扩展已有类的构造函数,在子类的构造函数中调用已有类的构造函数来实现属性和方法的初始化。
class Parent:
def __init__(self, name):
self.name = name
self.age = 0
class Child(Parent):
def __init__(self, name, age, hobby):
super().__init__(name)
self.age = age
self.hobby = hobby
child1 = Child("Bob", 10, "play basketball")
print(child1.name, child1.age, child1.hobby) # 输出 Bob 10 play basketball
代码解析:
总结
扩展另一个类的类的构造函数能够有效地减少代码重复和出错的风险。我们只需要在子类的构造函数中调用父类的构造函数,并进行必要的属性和方法的初始化即可。