对象组合————给一个类的对象封装一个属性,这个属性是另一个类的对象

模拟英雄联盟写一个游戏人物的类
要求:
1.创建一个Game_role的类
2.构造方法中给对象封装name,ad(***力),hp(血量),三个属性
3.创建一个attack方法,此方法是实例化两个对象,互相***的功能:
例:
实例化-一个对象盖伦, ad为10, hp为 100
实例化另个一个对象剑豪ad为20, hp为80
盖伦通过attack方法***剑豪,此方法要完成’ 谁***谁,谁掉了多少血,还剩多 少血’的提示功能.

class GameRole:
    def __init__(self, name, ad, hp):

        # 给对象封装3个属性
        # :param name:
        # :param ad:
        # :param hp:

        self.name = name
        self.ad = ad
        self.hp = hp

    def attack(self, p):
        p.hp = p.hp - self.ad  # 被打一下,自己的血就会被减少
        print("%s *** %s,%s 掉了%s血,还剩%s血" % (self.name, p.name, p.name, self.ad, p.hp))


p1 = GameRole("盖伦", 20, 500)
p2 = GameRole("亚索", 50, 200)

# 此时的self是盖伦的,但是要用到p2,需要把p2的对象空间传进去,参数p得到的就是p2的对象空间,这个对象空间,通过万能的点,什么都能获取到
p1.attack(p2)
print(p2.hp)
# 结果:
# 盖伦 *** 亚索,
上一篇:Hello CTP(三)——CTP行情API


下一篇:js_onsubmit的两种方法