python 子类中使用super函数调用父类的初始化方法
当子类中实现了 __init__ 方法,
基类的初始化方法并不会被调用 def __init__(self, ...)
In [169]: # 此示例示意 用super函数显示调用基类__init__初始化方法
...: class Human:
...: def __init__(self, n, a):
...: self.name, self.age = n, a
...: print("Human的__init__方法被调用")
...:
...: def infos(self):
...: print("姓名:", self.name)
...: print("年龄:", self.age)
...:
...:
...: class Student(Human):
...: def __init__(self, n, a, s=0):
...: super().__init__(n, a) # 显式调用父类的初始化方法
...: self.score = s # 添加成绩属性
...: print("Student类的__init__方法被调用")
...:
...: def infos(self):
...: super().infos() # 调用父类的方法
...: print("成绩:", self.score)
...:
...:
...: s1 = Student('小张', 20, 100)
...: s1.infos()
Human的__init__方法被调用
Student类的__init__方法被调用
姓名: 小张
年龄: 20
成绩: 100