#1.创建两所学校实列化
#2.学校关联老师,学生关联班级
#3.具体功能不实现,只简单输出内容
#学校的类(要创建两所学校)
class School(object):
def __init__(self,name,addr):
self.name = name
self.addr = addr
self.course_teacher = []
self.course_students = []
self.liunx_grade = []
self.python_grade = []
self.go_grade = []
#关联课程老师
def creat_course(self,obj_teach_course):
print(‘添加了代课老师%s,是主教%s的!‘%(obj_teach_course.name,obj_teach_course.course))
self.course_teacher.append(obj_teach_course)
#关联学生课程
def create_student(self,obj_students):
self.course_students.append(obj_students)
#开始分班级 ps:需要分配的是 你创建实例化的北京学堂和上海学堂的course_students列表
def classes(self):
for bei_val in Beijing_school.course_students:
if bei_val.subject == ‘python‘:
Beijing_school.python_grade.append(bei_val)
else:
Beijing_school.liunx_grade.append(bei_val)
for hai_val in Shanghai_school.course_students:
Shanghai_school.go_grade.append(hai_val)
def deduction(self): #统一扣款
pay(self.course_students)
#课程类
class Curriculum(object):
def __init__(self,course_name,course_price,course_cycle):
self.course_name = course_name
self.course_price = course_price
self.course_cycle = course_cycle
#学校的所有人的总类
class All_people(object):
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
#老师的类
class Teacher(All_people):
def __init__(self,name,age,sex,course):
super(Teacher,self).__init__(name,age,sex)
self.course = course
def action(self):
pass
#学生的类
class Students(All_people):
def __init__(self,name,age,sex,subject,money):
super(Students,self).__init__(name,age,sex)
self.subject = subject
self.money = money
def choice(self):
if self.subject == ‘python‘:
Beijing_school.course_students.append(self)
elif self.subject == ‘liunx‘:
Beijing_school.course_students.append(self)
else:
Shanghai_school.course_students.append(self)
def pay_tuition(self):
pass
#两所学校实列化
Beijing_school = School(‘北京学堂‘,‘朝阳区‘)
Shanghai_school = School(‘上海学堂‘,‘浦东新区‘)
#三种课程实例化
liunx = Curriculum(‘Liunx‘,5800,‘五个月‘)
python = Curriculum(‘Python‘,6800,‘八个月‘)
go = Curriculum(‘Go‘,3800,‘三个月‘)
#创建老师实列化
teacher_liunx = Teacher(‘张三老师‘,34,‘男‘,‘liunx‘)
teacher_python = Teacher(‘赵雪老师‘,28,‘女‘,‘python‘)
teacher_go = Teacher(‘王五老师‘,45,‘男‘,‘go‘)
#将老师关联到了学校
Beijing_school.creat_course(teacher_liunx)
Beijing_school.creat_course(teacher_python)
Shanghai_school.creat_course(teacher_go)
#创建学生实列化
maodan = Students(‘毛蛋‘,18,‘男‘,‘python‘,7600)
erya = Students(‘二丫‘,19,‘女‘,‘liunx‘,5000)
sanpao = Students(‘三炮‘,17,‘男‘,‘go‘,6000)
#给选择的学生分配学堂,然后再分班级
maodan.choice()
erya.choice()
sanpao.choice()
#开始分配班级,因为我在classes写了全部的代码,包含了北京学堂和上海学堂,所以这里只有写一次这个调用就行了,在协商上海学堂的话
#那么就会出现重复的添加了
Beijing_school.classes()
#提供一个对所有人做一个统一的扣款接口
def pay(obj):
list_course = [liunx,python,go]
if obj.subject == ‘liunx‘:
if obj.money > liunx.course_price:
print(‘恭喜%s成功报名了为期%s的%s课程‘%(obj.name,liunx.course_cycle,liunx.course_name))
else:
print(‘不好意思%s,您的钱不够报名您所想学的%s课程‘%(obj.name,liunx.course_name))
elif obj.subject == ‘python‘:
if obj.money > python.course_price:
print(‘恭喜%s成功报名了为期%s的%s课程‘%(obj.name,python.course_cycle,python.course_name))
else:
print(‘不好意思%s,您的钱不够报名您所想学的%s课程‘%(obj.name,python.course_name))
else:
if obj.money > go.course_price:
print(‘恭喜%s成功报名了为期%s的%s课程‘%(obj.name,go.course_cycle,go.course_name))
else:
print(‘不好意思%s,您的钱不够报名您所想学的%s课程‘%(obj.name,go.course_name))
pay(maodan)
pay(erya)
pay(sanpao)
原文:https://www.cnblogs.com/ifdashui/p/10711781.html