9-15 子类方法调用父类方法:super关键字
父类
class Human():
sum = 0
def __init__(self,name,age):
self.name = name
self.age = age
def get_name(self):
print(self.name)
def do_homework(self):
print('this is a paraent method')
from test1 import Human
class Student(Human): #student子类继承human父类
# sum = 0
# def __init__(self,name,age):
# self.name = name
# self.age = age
# self.__score = 0
# self.__class__ .sum += 1
def do_homework(self):
print('english homework')
student1 = Student('石敢当',18)
print(student1.sum)
print(Student.sum)
print(student1.name)
print(student1.age)
student1.get_name()
# 看下面的代码
from test1 import Human
class Student(Human): #student子类继承human父类
# sum = 0
def __init__(self,school,name,age):
self.school = school #school 属于子类,name,age属于父类,那么如何在子类里把name和age传给父类?
#Human.__init__(self,name,age)#这样就实现了在子类里调用父类的构造函数
super(Student,self).__init__(name,age)#这样就完成了调用父类的构造函数,super关键字指的就是父类human
# self.name = name
# self.age = age
# self.__score = 0
# self.__class__ .sum += 1
def do_homework(self):
super(Student,self).do_homework()#super不仅可以应用于构造函数,也可以应用于普通方法里
print('english homework')
student1 = Student('人民路小学','石敢当',18)
student1.do_homework()#父类和子类相同的时候,有限打印子类,如图1
# print(student1.sum)
# print(Student.sum)
# print(student1.name)
# print(student1.age)
# student1.get_name()


网友评论