类的组合

学校与课程没有共同点,课程与老师没有共同点,但是学校与课程有关联,课程与老师有关联;学校、课程、老师是三个完全不同的类;课程是属于学校的,老师是教课程的,此时我们就用到类的组合来关联,学校-课程,课程-老师;

class School:
"""
学校类
"""
def __init__(self,name,address):
self.name = name
self.address = address
class Course:
"""
课程类
"""
def __init__(self,name,price,period,school):
self.name = name
self.price = price
self.period = period
self.school = school
class Teacher:
"""
老师类
"""
def __init__(self,name,gender,age,course):
self.name = name
self.gender = gender
self.age = age
self.course = course
#学校实例化
x1 = School("oldboy","北京校区")
x2 = School("oldboy","天津校区")
x3 = School("oldboy","南京校区")
#课程实例化
k1 = Course("python",19880,"6个月",x1) #课程与学校关联
k2 = Course("linux",17880,"4个月",x2)
k3 = Course("go",20000,"8个月",x3)
#教师实例化
j1 = Teacher("alex","male",34,k2) #教师与课程关联
j2 = Teacher("武sir","male",30,k1)
j3 = Teacher("林海峰","male",35,k3)
print(k1.__dict__)
print(k1.school.name)
print(j1.__dict__)
print(j1.course.name)
class School:
"""
学校类
"""
def __init__(self,name,address):
self.name = name
self.address = address
class Course:
"""
课程类
"""
def __init__(self,name,price,period,school):
self.name = name
self.price = price
self.period = period
self.school = school
class Teacher:
"""
老师类
"""
def __init__(self,name,gender,age,course):
self.name = name
self.gender = gender
self.age = age
self.course = course
#学校实例化
x1 = School("oldboy","北京校区")
x2 = School("oldboy","天津校区")
x3 = School("oldboy","南京校区")
#课程实例化
k1 = Course("python",19880,"6个月",x1) #课程与学校关联
k2 = Course("linux",17880,"4个月",x2)
k3 = Course("go",20000,"8个月",x3)
#教师实例化
j1 = Teacher("alex","male",34,k2) #教师与课程关联
j2 = Teacher("武sir","male",30,k1)
j3 = Teacher("林海峰","male",35,k3)
print(k1.__dict__)
print(k1.school.name)
print(j1.__dict__)
print(j1.course.name) msg = """
1 oldboy 北京校区
2 oldboy 天津校区
3 oldboy 南京校区
"""
res = """
1 python
2 linux
3 go
"""
while True:
print(msg)
menu = {
"":x1,
"":x2,
"":x3,
}
choice = input("选择学校>>>:")
school_boj = menu[choice]
name = input("课程名称>>>:")
price = input("课程价钱>>>:")
period = input("课程周期>>>:")
new_course = Course(name,price,period,school_boj)
print("课程【%s】属于【%s】学校"%(new_course.name,new_course.school.name))
print(res)
inner = {
"":k1,
"":k2,
"":k3, }
choice1 = input("选择课程>>>:")
course_boj = inner[choice1]
name = input("老师名称>>>:")
gender = input("老师性别>>>:")
age = input("老师年龄>>>:")
new_teacher = Teacher(name,gender,age,course_boj)
print("老师【%s】教的是【%s】"%(new_teacher.name,new_teacher.course.name))

选课系统

最新文章

  1. EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)
  2. python实用小技巧自问自答系列(一):查看类中函数文档doc的方法
  3. css 默认
  4. TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
  5. <转载>国外程序员推荐的免费编程书籍资源
  6. action 关联
  7. c语言指针与结构体之内存动态分配
  8. iOS 性能测试 - FBMemoryProfiler
  9. ext Window点击右上角的关闭(Xbutton)加入监控事件
  10. Java—Day5课堂练习
  11. vim 查找的技巧
  12. com.alibaba.druid.pool.DruidDataSource : {dataSource-2} init error
  13. 华为S5700配置端口镜像和华三S5120配置802.1X认证记录
  14. VMware5.5-虚拟机的迁移和资源分配
  15. wpf UI 布局
  16. HTML命名规范
  17. 怎样将本地web数据库项目部署到腾讯云服务器上?
  18. Git/GitHub基本操作
  19. Python——可变类型与不可变类型(即为什么函数默认参数要用元组而非列表)
  20. 【.NET】AutoMapper学习记录

热门文章

  1. 树(6)-----DFS
  2. windows系统下jenkins环境搭建与基本使用
  3. URL编码及解码
  4. [网络流24题] 方格取数问题/骑士共存问题 (最大流->最大权闭合图)
  5. [luogu4037 JSOI2008] 魔兽地图 (树形dp)
  6. CSS中选择器优先级的权重计算
  7. Objective-C - 改变NSMutableArray的特定元素
  8. 怎样使windows上的javaWEB项目公布到Centos上
  9. intel dpdk在ubuntu12.04中測试testpmd、helloworld程序
  10. 关于ZipOupputStream添加压缩包常见问题