说白了就是子类自定义地继承父类的属性,如果没写这句就是全部继承
“One should not forget to call super in order to implement the functionality of the original class being overloaded. ”——Kivy官网
如:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class Person(object):
def __init__(self,name,gender,age):
self.name = name
self.gender = gender
self.age = age
class Student(Person):
def __init__(self,name,gender,age,school,score)
self.name = name.upper()
self.gender = gender.upper()
self.school = school
self.score = score
s = Student('Alice','female',18,'Middle school',87)
print (s.school)
print (s.name)
Output:
Middle school
ALICE
如果使用super(Student, self).init():
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class Person(object):
def __init__(self,name,gender,age):
self.name = name
self.gender = gender
self.age = age
class Student(Person):
def __init__(self,name,gender,age,school,score):
super(Student,self).__init__(name,gender,age)
self.school = school
s = Student('Alice','female',18,'Middle school',87)
print (s.school)
print (s.name)
Output:
Middle school
Alice
可见super().__init__()
可以继承父类的初始化方式,也就是不只是运行子类,还运行了父类。
参考:https://www.cnblogs.com/jfdwd/p/11077137.html
https://blog.youkuaiyun.com/qq_40797015/article/details/111999203