我们知道,在继承关系中,类与类之间的关系是is -a ,比如说,Dog类继承了Animal类,也就是说存在Dog is a Animal的关系。
但是,有些时候,类与类之间并不存在 is-a 的关系,但是,他们在逻辑上还是存在关系的。比如说,电脑和cpu、主板等,电脑和cpu、主板之间显然不存在继承关系,但是我们知道,cpu、主板是电脑的组成部件。因此,我们可以说电脑和cpu、主板之间存在组合关系。
class Cpu:#定义一个Cpu类
def __init__(self,cpubrand,cpuprice):#cpu的属性有品牌、价格等
self.cpubrand=cpubrand
self.cpuprice=cpuprice
def calc(self):
print("CPU是电脑的大脑,你能进行大量的计算")
class Mainboard:#定义一个主板类
def __init__(self,mbprice,mbsize):#主板的属性有价格和型号
self.mbprice=mbprice
self.mbsize=mbsize
def connect(self):
print("主板类似于人类的脊椎神经,它能够将显卡、声卡等设备联系起来")
class Computer:#定义一个电脑类
def __init__(self,comprice,combrand,cpuprice,cpubrand,mbprice,mbsize):
self.comprice=comprice
self.combrand=combrand
self.cpu=Cpu(cpuprice,cpubrand)
self.mainboard=Mainboard(mbprice,mbsize)
def play_game(self):
print("嘿嘿,我们可以用电脑来玩游戏啊")
com=Computer(6999,"三星",2345,"intel",3998,"b53")
print(com.cpu.cpuprice)
执行结果为:
intel
组合的方式,同样使得类与类之间产生了联系。