Succeed_School
# Author kevin_hou
class School(object):
def __init__(self,name,addr):
self.name = name
self.addr = addr
self.students = []
self.staffs = []
def enroll(self,stu_obj):
self.students.append(stu_obj)
print("---------Prepare for student %s enrolling--------"%stu_obj.name)
def hire(self,staff_obj):
self.staffs.append(staff_obj)
print("---------hire a new staff %s--------"%staff_obj.name) class SchoolMember(object):
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def tell(self):
pass class Teacher(SchoolMember):
def __init__(self,name,age,sex,salary,course):
super(Teacher, self).__init__(name,age,sex)
self.salary = salary
self.course = course
def tell(self):
print(
'''
----------------info of Teachers: %s-------------------
Name: %s
Age: %s
Sex: %s
Salary: %s
Course: %s
'''%(self.name,self.name,self.age,self.sex,self.salary,self.course))
def tech(self):
print("%s is teasching course [%s]"%(self.name,self.course)) class Student(SchoolMember):
def __init__(self,name,age,sex,stu_id,grade):
super(Student, self).__init__(name,age,sex)
self.stu_id = stu_id
self.grade = grade
def tell(self):
print(
'''
----------------info of Students: %s-------------------
Name: %s
Age: %s
Sex: %s
Stu_id: %s
Grade: %s
''' % (self.name,self.name, self.age, self.sex, self.stu_id, self.grade))
def pay_tution(self,amount):
print("%s has paid tution for $s"%(self.name,amount))
school = School("Kevin","Shanghai")
t1 = Teacher("Alex", 22, "M", 1002,"python3")
t2 = Teacher("Jane", 33,"F",800,"C language") s1 = Student("Curry", 22, "M", 1002,"python3")
s2 = Student("Rossal", 33,"M",800,"C language") t1.tell()
# ----------------info
# of
# Teachers: Alex - ------------------
# Name: Alex
# Age: 22
# Sex: M
# Salary: 1002
# Course: python3
s1.tell()
# ----------------info
# of
# Students: Curry - ------------------
# Name: Curry
# Age: 22
# Sex: M
# Stu_id: 1002
# Grade: python3
school.hire(s1) #---------hire a new staff Curry--------
school.enroll(s1) #---------Prepare for student Curry enrolling--------
school.enroll(s2) #---------Prepare for student Rossal enrolling-------- print(school.students) #[<__main__.Student object at 0x0144CC70>, <__main__.Student object at 0x0144CCB0>]
print(school.staffs) #[<__main__.Student object at 0x0144CC70>]
Succeed_School的更多相关文章
随机推荐
- Vuex的同步异步存值取值
1. vue中各个组件之间传值 1.父子组件 父组件-->子组件,通过子组件的自定义属性:props 子组件-->父组件,通过自定义事件:this.$emit('事件名',参数1,参数2, ...
- C语言实现任务调度与定时器
代码实现是在xl2tpd的源码中get到的,感觉很有意思的一段代码.基本功能就是实现定时器,时间到后从定时队列中取出,然后完成指定的任务. 1. schedule.c代码(自己添加了main函数,用来 ...
- Winform EF CodeFist方式连接数据库
直接生成ado.net 实体数据模型挺方便的,但只有一步步的手写代码才能更好的理解EF,在学习asp.net core过程中手写代码已经明白了怎么回事,但实现过程有些麻烦不知道如何记录,但Winfor ...
- DLL延时加载技术与资源释放
DLL延时加载技术与资源释放 0x00 前言 诸如调用非Windows的第三方库,我们或许会使用到dll文件,而这个时候原本程序运行需要相应的dll文件才能加载启动.通过DLL延时加载技术,使用延时加 ...
- (2)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Cloud是什么?Spring Cloud版本介绍
Spring Cloud 是一系列框架的有序集合.它利用 Spring Boot 的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务注册.服务发现.配置中心.消息总线.负载均衡.断路器.数 ...
- Redis核心原理与实践--列表实现原理之ziplist
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入.弹出数据,可以充当栈和队列的角色. > LPUSH fruit apple (integer) 1 > RPUSH ...
- C# 多线程编程之锁的使用【互斥锁(lock)和读写锁(ReadWriteLock)】
多线程编程之锁的使用[互斥锁(lock)和读写锁(ReadWriteLock)] http://blog.csdn.net/sqqyq/article/details/18651335 多线程程序写日 ...
- php图片处理库
<?php namespace app\common\library; /** * include 'imagick.class.php'; $image = new lib_image_ima ...
- HDU2094产生冠军 (拓扑排序)
HDU2094产生冠军 Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛. 球赛的规则如下: 如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认 ...
- 无序数组求第K大的数
问题描述 无序数组求第K大的数,其中K从1开始算. 例如:[0,3,1,8,5,2]这个数组,第2大的数是5 OJ可参考:LeetCode_0215_KthLargestElementInAnArra ...