1。组合与重用性
软件重用的重要方式除了继承外,还有组合
引用>
组合:指的是在一个类中的数据属性的值是另外一个类的对象<代码> # !/usr/bin/env python # - * -编码:utf - 8 - * #作者:个人简历 类装备:#武器装备类 def火(自我): 打印(“释放火技能”) 类分裂:#英雄撕裂的类,一个英雄需要有装备,因而需要组合装备类 营=' Noxus ' def __init__(自我,绰号): self.nickname=昵称 self.equip=装备()#用装备类产生一个装备,赋值给实例的装备属性 r1=撕裂(“锐雯雯) r1.equip.fire() #可以使用组合的类产生的对象所持有的方法 E: \ PythonProject \ python测试\ venvP3 \ \ python脚本。exe E:/PythonProject/python测试/BasicGrammer/test.py 火释放技能 过程完成退出代码0 代码><代码>组合与继承都是有效的利用已有类的资源的重要方式,但二者的概念和使用场景不同 1 .继承的方式 通过继承建立了派生类与基类之间的关系,他们是一种“是”的关系,比如人是动物 当类之间有很多相同功能,提取这些相同的功能做成基类,用继承比较好,例如老师是人,学生是人 2 .组合的方式 用组合的方式建立了类与组合的类之间的关系,它是一种“有”的关系,比如教授有生日,教授有学生s1, s2 代码><代码>”继承与组合实例” 类人: def __init__(自我,姓名、年龄、性别): self.name=名字 self.age=年龄 self.sex=性 类课程: def __init__(自我、名称、时间、价格): self.name=名字 self.period=时期 self.price=价格 def tell_info(自我): 打印(' & lt; % s % s % s>“% (self.name, self.period self.price)) 班主任(人): def __init__(自我,姓名、年龄、性别、job_title): People.__init__(自我,姓名、年龄、性别) self.job_title=job_title 自我。课程=[]#老师可以讲很多中课 self.students=[] #老师管理很多个学生 类学生(人): def __init__(自我,姓名、年龄、性别): People.__init__(自我,姓名、年龄、性别) 自我。课程=[]#学生上很多课 大多=老师(egon, 18岁的“男性”,“沙河霸道金牌讲师”) s1=学生(“牛榴弹”,18岁的“女性”) python=课程(“python”,“3隆起”,3000.0) linux=课程(“python”,“3隆起”,3000.0) #为老师大多和学生s1添加课程 egon.course.append (python) egon.course.append (linux) s1.course.append (python) #为老师大多添加学生s1 egon.students.append (s1) #使用 在egon.course obj: obj.tell_info () E: \ PythonProject \ python测试\ venvP3 \ \ python脚本。exe E:/PythonProject/python测试/BasicGrammer/test.py & lt; python 3隆起3000.0比; & lt; python 3隆起3000.0比; 过程完成退出代码0 代码><代码>”总结: 当类之间显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好”代码>面向对象——组合