Day28.学校类的定义与使用
理解:将单个对象独有的字段数据存在__init__层级下,公用的方法存放在类层级下
1.学校类的定义与使用_学校类__创建学校并关联班级
学校类__创建学校并关联班级,代码如下:
# 整合 --> 解耦合 --> 扩展性增强 class School: # 学校类 # 学校共有的数据 school_name = 'OLDBOY' # 每个学校独有的东西 def __init__(self, nickname, addr): self.nickname = nickname # 别名 self.addr = addr # 地址 self.classes = [] # 班级 # 学校共有的功能,关联班级 def related_class(self, class_name): self.classes.append(class_name) # 有重复代码,定义一个函数, 绑定方法使用self,谁来调用这个函数,我就把谁传进来 # 例: school_obj1调用tell_class函数,则就把school_obj1对应的School('老男孩魔都校区', '上海')的传参,传进来 def tell_class(self): print(self.nickname) for class_name in self.classes: # print('学校的名称:{}, 班级名称:{} '.format(self.nickname, class_name)) print(' 班级名称:{} '.format(class_name)) # 一:学校 '''1.创建学校''' school_obj1 = School('老男孩魔都校区', '上海') school_obj2 = School('老男孩帝都校区', '北京') '''2.为学校开设班级(学校关联班级)''' school_obj1.related_class('脱产14期') school_obj1.related_class('脱产15期') school_obj2.related_class('脱产29期')
2.学校类的定义与使用_查看学校类中对应班级的三种方法
查看学校类中对应班级的三种方法:
'''3.1.查看学校对应班级的重复代码部分''' print('3.1.查看学校对应班级的重复代码部分'.center(60,'-')) # 上海校区开了脱产14期,上海校区开了脱产15期 for class_name in school_obj1.classes: print('学校的名称:{}, 班级名称:{} '.format(school_obj1.nickname, class_name)) # 北京校区开了脱产29期 for class_name in school_obj2.classes: print('学校的名称:{}, 班级名称:{} '.format(school_obj2.nickname, class_name)) '''3.2.类中新增tell_class方法,处理`查看学校对应班级的重复代码部分`''' print('3.2.类中新增tell_class方法,处理`查看学校对应班级的重复代码部分_Ⅰ`'.center(60, '-')) School.tell_class(school_obj1) School.tell_class(school_obj2) '''3.3.查看学校对应班级的重复代码部分''' print('3.3.类中新增tell_class方法,处理`查看学校对应班级的重复代码部分_Ⅱ`'.center(60, '-')) school_obj1.tell_class() school_obj2.tell_class()
3.学校类的定义与使用_三种方法的执行结果