组合:是给一个类的对象封装一个属性,封装的这个属性是另一个类的对象。
类:具有相同属性和技能的一类事物
对象:就是类的具体表现,具体的实例
class GameRole:
def __init__(self,name,ad,hp):
self.name = name
self.ad = ad
self.hp = hp
def armament_weapon(self,wea):
self.wea = wea
class Weapon:
def __init__(self,name,ad):
self.name = name
self.ad = ad
def fight(self,p1,p2):
p2.hp = p2.hp - self.ad
print("{}用{}打了{},{}掉了{}血,还剩{}血"
.format(p1.name,self.name,p2.name,p2.name,self.ad,p2.hp))
p1 = GameRole('盖伦',20,500)
p2 = GameRole('亚索',50,200)
axe = Weapon('三板斧',60)
broadsword = Weapon('屠龙宝刀',10)
p1.armament_weapon(axe)
p1.wea.fight(p1,p2)
图中所示,p1调用装备方法,将武器类中的三板斧这个对象作为属性传给了装备方法,axe也就变成了wea属性,从而给了p1。