一、什么是组合
组合指的是一个对象拥有某一个属性,该属性的值是另外一个类的对象,通过这种方式可以利用另外一个对象的属性
如:
对象A.属性 = 对象B
二、为什么要用组合
1.为了减少代码类与类之间代码冗余
2.提供对象的利用率,以达到效果
三、怎么用
在定义的类A中定义一个属性,该属性关联了另外一个类B的对象。那么在实例化类A、使用类A的对象中,就会直接或间接的利用到类B的对象以及它的属性
学生选课系统如:定义课程类
class Course: def __init__(self, name, price): self.name = name self.price = price
定义学生类
class JdStudent: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex self.course = None
组合学生类和课程类
course = Course('html',1800) stu = JdStudent('张三',18,'男') stu.course = course
通过组合,每个学生对象可以访问课程信息
print('学生%s选修的课程是%s费用是%s' % (stu.name, stu.course.name, stu.course.price))