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.学校类的定义与使用_三种方法的执行结果

 

posted on 2024-06-16 22:22  与太阳肩并肩  阅读(3)  评论(0编辑  收藏  举报

导航