组合:给一个类的对象封装一个属性,这个属性是另一个类的对象
class Gamrole:
def __init__(self, nickname, ad, hd):
self.nickname = nickname
self.ad = ad
self.hd = hd
def attack(self,role):
role.hp = role.hp - self.ad
print('{}攻击了{}.{}掉了{}血,还剩{}血'.format(self.nickname, role.nickname, role.nickname, self.ad, role.hp))
def equip_weaon(self,w): #给人物封装一个武器属性,这个属性值是 Weapon类的一个对象
self.weapon = w #组合
class Weapon:
def __init__(self, name, ad):
self.name = name
self.ad = ad
def fight(self, name, ad):
self.name = name
self.ad = ad
def fight(self, role1, role2):
role2.hd = role2.hd - self.ad
print('{}用{}攻击了{},{}掉了{}血,还剩{}血'\
.format(role1.nickname, self.name, role2.nickname, role2.nickname, self.ad, role2.hd))
p1 = Gamrole('盖伦',20, 500)
p2 = Gamrole('剑豪', 100, 200)
w1 = Weapon('大宝剑', 30)
w2 = Weapon('武士刀', 80)
p1.equip_weaon(w1)
p1.weapon.fight(p1,p2) #盖伦用大宝剑攻击了剑豪,剑豪掉了30血,还剩170血
posted on
浙公网安备 33010602011771号