版权声明:本文为博主原创,未经本人允许不得转载。本人有权追究法律责任 https://blog.csdn.net/wuxingpu5/article/details/89501063
22题:编写类完成以下的嵌套关系
"""
角色:学校、课程、班级
要求:
1. 创建北京、上海、深圳三所学校。
2. 创建课程
北京有三种课程:Linux、Python、Go
上海有两种课程:Linux、Python
深圳有一种课程:Python
3. 创建班级(班级包含:班级名称、开班时间、结课时间、班级人数)
北京Python开设:21期、22期
北京Linux开设:2期、3期
北京Go开设:1期、2期
上海Python开设:1期、2期
上海Linux开设:2期
深圳Python开设:1期、2期
"""
简要代码示例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class School:
def __init__(self, place):
self.place = place # 学校地址
class Course:
def __init__(self, cname, School_obj):
self.cname = cname # 课程名称
self.school = School_obj.place # 学校地址
class Grade:
def __init__(self, name, stime, etime, stu_total, Course_obj):
self.gname = name # 班级名称
self.stime = stime # 开始时间
self.etime = etime # 结束时间
self.stu_total = stu_total # 人数
self.course = Course_obj # 课程详情(包括课程名称和学校名称)
sch1 = School('北京')
sch2 = School('上海')
sch3 = School('深圳')
course1 = Course('Python', sch1)
course2 = Course('linux', sch1)
course3 = Course('Go', sch1)
course11 = Course('Python', sch2)
course12 = Course('linux', sch2)
course13 = Course('Go', sch2)
course21 = Course('Python', sch3)
course22 = Course('linux', sch3)
course23 = Course('Go', sch3)
g1 = Grade('21期', '2017', '2018', 33, course1)
g2 = Grade('22期', '2017', '2018', 33, course1)
g3 = Grade('2期', '2017', '2018', 33, course2)
g4 = Grade('3期', '2017', '2018', 33, course2)
g5 = Grade('1期', '2017', '2018', 33, course3)
g6 = Grade('2期', '2017', '2018', 33, course3)
g7 = Grade('1期', '2017', '2018', 33, course11)
g8 = Grade('2期', '2017', '2018', 33, course11)
g9 = Grade('2期', '2017', '2018', 33, course12)
g10 = Grade('1期', '2017', '2018', 33, course21)
g11 = Grade('2期', '2017', '2018', 33, course21)
l = ['g' + str(i) for i in range(1, 12)]
for i in l: # 默认i为字符串无法执行 需要eval
place = eval(i).course.school
course_name = eval(i).course.cname
gname = eval(i).gname
print(f'{place}{course_name}开设:{gname}')
题源:https://gitee.com/old_boy_python_stack_21/teaching_plan/issues/IVSQ8