python面向对象之嵌套

版权声明:本文为博主原创,未经本人允许不得转载。本人有权追究法律责任 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

猜你喜欢

转载自blog.csdn.net/wuxingpu5/article/details/89501063