加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

类的组合

发布时间:2020-12-20 10:09:12 所属栏目:Python 来源:网络整理
导读:类的组合初识 什么是类的组合 将毫无关系的多个类在一个类中执行实例化,让彼此之间产生关联.就是类的组合 为什么要有类的组合 通过类的组合,可以使程序的逻辑更为明确,从而增强了程序的可扩展性。 类的组合使用注意事项 类的组合在设计时对于初学者来说会

类的组合初识

什么是类的组合

  将毫无关系的多个类在一个类中执行实例化,让彼此之间产生关联.就是类的组合

为什么要有类的组合

  通过类的组合,可以使程序的逻辑更为明确,从而增强了程序的可扩展性。

类的组合使用注意事项

  类的组合在设计时对于初学者来说会十分的繁琐。因此一定要注意理好程序的逻辑,否则那将是一件非常糟糕的事情...

   Ps:面向对象的思想设计程序其实就是在面向过程之上加了一层封装分类,将一些功能或属性封装到一个其他的类里面。这样的做法势必会增加其设计难度,但是一旦程序设计完成之后使用和维护将会变得非常简单。

案例分析

类的组合案例初始版

  待优化:不能通过学校直接拿到班级再拿到课程信息...

class School(object):
    """学校类"""

    def __init__(self,name):
        self.name = name
        self.class_obj_list = []


    def add_classes(self,class_obj):
        新增班级"""
        self.class_obj_list.append(class_obj)

     show_classes(self):
        查看班级信息"""
        print("[{0}]的班级信息如下".format(self.name))
        for classes in self.class_obj_list:
            classes.show_classes_msg()  #直接调用对象的方法


 Classes(object):
    班级类 name
        self.create_time = create_time
        self.course_obj_list = []

     add_course(self,course_obj):
        新增课程
        self.course_obj_list.append(course_obj)

     show_classes_msg(self):
        班级的名字是:[{0}].班级的创建时间是[{1}].format(self.name,self.create_time))

     show_course(self):
        查看课程信息[{0}]的课程信息如下:for course  self.course_obj_list:
            course.show_course_msg()   直接调用对象的方法

 Course(object):
    课程类"""
     name
        self.price = price

     show_course_msg(self):
        课程的名字是:[{0}].课程的价格是[{1}] ==== 添加学校 ===

s1 = School(黄埔军校)

 ==== 为学校添加班级 ====

classes_1 = Classes(陆军1班",1927-01-28)
classes_2 = Classes(海军2班1927-02-14)

s1.add_classes(classes_1)
s1.add_classes(classes_2)

 ==== 为班级添加课程 ===

course_1 = Course(坦克驾驶技术)
course_2 = Course(轰炸机驾驶技术)

classes_1.add_course(course_1)
classes_2.add_course(course_2)

 ==== 查看学校的班级信息 ====

s1.show_classes()

 ==== 查看班级的课程信息 ====

classes_1.show_course()
classes_2.show_course()

 ===- 执行结果 ====


[黄埔军校]的班级信息如下
班级的名字是:[陆军1班].班级的创建时间是[1927-01-28]
班级的名字是:[海军2班].班级的创建时间是[1927-02-14]
[陆军1班]的课程信息如下:
课程的名字是:[坦克驾驶技术].课程的价格是[19999]
[海军2班]的课程信息如下:
课程的名字是:[轰炸机驾驶技术].课程的价格是[12888]
"""

类的组合案例优化版

  优化版:可通过学校拿到班级再拿到课程信息...

"""

  为某一班级新增课程for cls  self.class_obj_list:
            if cls.name == cls_name:
                cls.course_obj_list.append(Course(course_name,course_price))  直接实例化添加对象

    直接调用对象的方法

     show_course(self,cls_name):
        通过输入班级名拿到其下所有课程信息 cls_name:
                cls.show_course()  
s1.add_classes(Classes())
s1.add_classes(Classes())


s1.add_course()
s1.add_course(
s1.show_course()
s1.show_course("""

案例总结

  通过上面的案例,我们可以发现在使用时确实变得非常简单,单纯的调某一个方法即可。但是设计时确实不太好设计,各位感兴趣的可以在此基础上做一些增加,比如老师,学生等等的类。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读