class School(object):
def __init__(self,name,addr):
'''初始化school类'''
self.name=name
self.addr=addr
self.students=[]
self.staffs=[]
def enroll(self,stu_obj):
'''学生注册'''
self.students.append(stu_obj)
print("为学员:%s 办理注册手续"%stu_obj.name)
def hire(self,staff_obj):
'''聘任教师'''
self.staffs.append(staff_obj)
print("雇佣新员工:%s"%staff_obj.name)
class SchoolMember(object):
def __init__(self,name,age,sex,hourse_name,hourse_id):
'''初始化schoolmember'''
self.name=name
self.age=age
self.sex=sex
self.hourse_name=hourse_name
self.hourse_id=hourse_id
def tell(self):
pass
class Teacher(SchoolMember):
def __init__(self,name,age,sex,salary,course,hourse_name,hourse_id):
'''重构Teacher,继承schoolmember,添加salary course 属性'''
super(Teacher,self).__init__(name,age,sex,hourse_name,hourse_id)
self.salary=salary
self.course=course
def tell(self):
'''老师实例介绍'''
print('''
---info of teacher:%s----
Name:%s
Age:%s
Sex:%s
salary:%s
Course:%s
Hourse_name:%s
Hourse_id:%s
'''%(self.name,self.name,self.age,self.sex,self.salary,self.course,self.hourse_name,self.hourse_id))
def teach(self):
'''教师开课信息'''
print("%s is teaching course %s"%(self.name,self.course))
class Student(SchoolMember):
def __init__(self,name,age,sex,stu_id,grade,hourse_name,hourse_id):
'''继承schoomember,重构student,添加 stu_id grade 属性'''
super(Student,self).__init__(name,age,sex,hourse_name,hourse_id)
self.stu_id=stu_id
self.grade=grade
def tell(self):
'''学生实例介绍'''
print('''
---info of student:%s----
Name:%s
Age:%s
Sex:%s
Stu_id:%s
Grade:%s
House_name:%s
House_id:%s
'''%(self.name, self.name, self.age, self.sex, self.stu_id, self.grade,self.hourse_name,self.hourse_id))
def pay_tuition(self,amount):
'''学生缴费'''
print("%s has paid tuition for $%s"%(self.name,amount))
school=School("平川中学","洪门")
t1=Teacher("李海",66,"M",7000,"语文","教师宿舍1栋","611")
t2=Teacher("江茉莉",26,"F",6000,"英语","教师宿舍2栋","510")
s1=Student("雷东",18,'M',"2017-022","理科","学生宿舍7栋","627")
s2=Student("肖花",17,'F',"2017-066","文科","学生宿舍5栋","310")
t1.tell()
t2.tell()
s1.tell()
s2.tell()
school.hire(t1)
school.hire(t2)
school.enroll(s1)
school.enroll(s2)
t1.teach()
t2.teach()
print(school.students,school.staffs)
#school.staffs[0].tell()
#school.staffs[1].tell()
#school.students[0].tell()
#school.students[1].tell()
for stu in school.students:
stu.pay_tuition(5000)
面向对象实例-继承-学校
原创
©著作权归作者所有:来自51CTO博客作者leiwenbin627的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:面向对象
下一篇:面向对象-多态的实现
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
面向对象继承实例(a如何继承b)
面向对象继承实例 面向对象继承实例 经常看到面试题有关继承问题 a如何继承b 决定写一下,其实继承就是继承父级的属性和方法
html 面向对象 javascript 其他