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()