1 # -*- coding:utf-8 -*- 2 import time 3 4 class Person(object): 5 ''' 6 定义父类:人 7 属性:姓名,年龄 8 方法:走路(打印:姓名+“正在走路”) 9 '''10 11 def __init__(self, name, age):12 self.name = name13 self.age = age14 15 def walk(self):16 print self.name + "正在走路"17 18 19 class Teacher(Person):20 '''21 定义子类:老师22 属性:上课学生(集合)23 方法:授课(打印:姓名+“老师正在上课”, 并调用所有上课学生的听课方法)24 下课(打印:“下课”,并调用所有学生的走路方法)25 '''26 # 方法重载(name), 覆盖父类初始值27 def __init__(self,name,age, students):28 Person.__init__(self, name, age)29 self.students = students30 31 def teach(self):32 print self.name + "老师正在上课"33 for i in self.students:34 i.learn()35 36 def classover(self):37 print "下课"38 for i in self.students:39 i.walk()40 41 42 class Student(Person):43 '''44 定义子类:学生45 属性:学号46 方法:听课(打印:姓名+学号+“正在听课”)47 '''48 def __init__(self, name,age, studentID):49 Person.__init__(self, name, age)50 self.studentID = studentID51 52 def learn(self):53 print self.name + str(self.studentID) + "正在听课"54 55 56 if __name__ == "__main__":57 58 # 实例化一个老师、三个学生,然后模拟老师授课,老师下课的情景59 studentlist = [Student("A", 20, 07150200), Student("B", 21, 07150232), Student("C", 19, 07150266)]60 teacher = Teacher("PZJ", 20, studentlist)61 teacher.teach()62 print '-' * 10, "等待下课",'-'*1063 time.sleep(5)64 teacher.classover()