class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def sing(self):
print("人在唱歌")
class Student(Person):
def __init__(self, name, age, score):
self.score = score
Person.__init__(self, name, age) # 显示继承说明方式一
super().__init__(name, age) # 显示继承说明方式二
def dance(self):
print("人在跳舞")
s1 = Student('刘', 18, 90)
总结:
如果子类需复用父类的构造器时,需要在定义子类时,在子类构造器的结尾,注明继承代码。
方式有两种可选用:
第一种:父类的类名.__init__(self,父类构造函数形参1,2,...)
第二种:super().__init__(父类构造函数形参1,2,...)
因为父类又名超类,所以注明继承可以用父类的类名,也可以用super(),
可以看出上述两种方法的区别是,如果写明父类的类名时,不需加()
须在__init__后的括号内先写下self,而使用super时,需加(),
且不需在__init__后的括号内写下self。