# 组合:一个对象的属性是另外一个类的对象
class Person:
def __init__(self,name,attack,hp):
self.name = name
self.attack = attack
self.hp = hp
def attack(self,monster):
monster.hp -= self.attack
def get_arms(self,arms):
self.attack += arms.attack
self.arms = arms
class Monster:
def __init__(self,name,attack,hp,types):
self.name = name
self.attack = attack
self.hp = hp
self.types = types
class Arms:
def __init__(self,name,attack,range):
self.name = name
self.attack = attack
self.range = range
def fire(self,monster):
if self.range > 0:
monster.hp -= self.attack * 2
self.range -= 1
p = Person('q',10,100)
m = Monster('goblin',20,300,'monster')
a = Arms('sword',30,3)
p.get_arms(a)
p.arms.fire(m)
print(m.hp) # 打印结果:240