57-python-组合

# 组合:一个对象的属性是另外一个类的对象
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

  

posted @ 2018-10-28 21:34  _Q  阅读(72)  评论(0)    收藏  举报