Day28.学校与班级建关联

1.学校与班级建关联_班级类,将班级和班级对应的课程信息生成对象

'''班级'''
class Class:
    # __init__中,初始化单个对象,记录每个班级独有的东西
    def __init__(self, class_name):
        self.class_name = class_name
        # 初始班级时,班级没有课程表
        self.class_course = None

    # 定义一个班级关联课程
    def related_course(self, course_name):
        self.class_course = course_name

    # 提到类中定制一个方法
    def tell_course(self):
        print(self.class_name.center(60, '='))
        print('%s %s' %(self.class_name, self.class_course))


# 二:班级
# 1.创建班级
class_obj1 = Class('脱产14期')
class_obj2 = Class('脱产15期')
class_obj3 = Class('脱产29期')

# 2.查看班级开设的课程信息
class_obj1.related_course('python全栈开发')
class_obj2.related_course('Linux运维')
class_obj3.related_course('python全栈开发')

# 3.查看学校开设班级,开设的对应的课程
class_obj1.tell_course()
class_obj2.tell_course()
class_obj3.tell_course()

2.学校与班级建关联_学校类,学校类中传入班级的对象

# 整合 --> 解耦合 --> 扩展性增强
'''学校'''
class School:
    # 学校共有的数据
    school_name = 'OLDBOY'
    # 每个学校独有的东西
    def __init__(self, nickname, addr):
        self.nickname = nickname        # 别名
        self.addr = addr                # 地址
        self.classes = []               # 班级

    # 学校共有的功能,关联班级, 并传入班级的课程
    # def related_class(self, class_name):
    # 将班级对象存放到classes列表中
    def related_class(self, class_obj):
        self.classes.append(class_obj)

    # 有重复代码,定义一个函数, 绑定方法使用self,谁来调用这个函数,我就把谁传进来
    # 例: school_obj1调用tell_class函数,则就把school_obj1对应的School('老男孩魔都校区', '上海')的传参,传进来
    def tell_class(self):
        print(self.nickname.center(60, '='))
        for class_obj in self.classes:
            class_obj.tell_course()
            # print('学校的名称:{}, 班级名称:{} '.format(self.nickname, class_name))
            # print('        班级名称:{} '.format(class_obj.tell_course()))
        print('')

'''学校:1.创建学校'''
school_obj1 = School('老男孩魔都校区', '上海')
school_obj2 = School('老男孩帝都校区', '北京')

'''学校:2.为学校开设班级(学校关联班级)'''
# school_obj1.related_class('脱产14期')
# school_obj1.related_class('脱产15期')
# school_obj2.related_class('脱产29期')






'''班级'''
class Class:
    # __init__中,初始化单个对象,记录每个班级独有的东西
    def __init__(self, class_name):
        self.class_name = class_name
        # 初始班级时,班级没有课程表
        self.class_course = None

    # 定义一个班级关联课程
    def related_course(self, course_name):
        self.class_course = course_name

    # 提到类中定制一个方法
    def tell_course(self):
        print(self.class_name.center(60, '='))
        print('%s %s' %(self.class_name, self.class_course))


# 二:班级
# 1.创建班级
class_obj1 = Class('脱产14期')
class_obj2 = Class('脱产15期')
class_obj3 = Class('脱产29期')

# 2.查看班级开设的课程信息
class_obj1.related_course('python全栈开发')
class_obj2.related_course('Linux运维')
class_obj3.related_course('python全栈开发')

# 3.查看学校开设班级,开设的对应的课程
# class_obj1.tell_course()
# class_obj2.tell_course()
# class_obj3.tell_course()






# 4.为学校开设班级
# 原来时直接填写班级名称
# school_obj1.related_class('脱产14期')
# 现在需要从Class类的对象中获取班级名称,为学校开设班级(学校关联班级)
school_obj1.related_class(class_obj1)
school_obj1.related_class(class_obj2)
school_obj2.related_class(class_obj3)

school_obj1.tell_class()
school_obj2.tell_class()

posted on 2024-06-17 13:58  与太阳肩并肩  阅读(6)  评论(0编辑  收藏  举报

导航