当子类中实现了 __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