面对对象编程之对象之间的交互
这是一个猫狗大战的例子
# 猫类 class Cat: def __init__(self, name, hp, attack): self.name = name # 名字 self.hp = hp # 血量 self.attack = attack # 攻击力 # 猫的攻击:挠 def catch(self, dog_obj): if dog_obj.hp == 0: print(f"{dog_obj.name}:ヾ(。`Д´。)血槽空了!") print(f"{self.name}:愚蠢的生物!") return True else: if dog_obj.hp >= self.attack: dog_obj.hp -= self.attack print(f"cat:{self.name}发动攻击,dog的血槽还剩:{dog_obj.hp}!") return False else: print(f"cat:{self.name}发动攻击,dog的血槽还剩:0!") print(f"{dog_obj.name}:ヾ(。`Д´。)血槽空了!") print(f"{self.name}:愚蠢的生物!") return True # 狗类 class Dog: def __init__(self, name, hp, attack): self.name = name # 名字 self.hp = hp # 血量 self.attack = attack # 攻击力 # 狗的攻击:咬 def bite(self, cat_obj): if cat_obj.hp == 0: print(f"{cat_obj.name}:ヾ(。`Д´。)血槽空了!") print(f"{self.name}:渺小的猫科动物!") return True else: if cat_obj.hp >= self.attack: cat_obj.hp -= self.attack print(f"dog:{self.name}发动攻击,cat的血槽还剩:{cat_obj.hp}!") return False else: print(f"dog:{self.name}发动攻击,cat的血槽还剩:0!") print(f"{cat_obj.name}:ヾ(。`Д´。)血槽空了!") print(f"{self.name}:渺小的猫科动物!") return True # 创建一只加菲猫 cat_graf = Cat("garfield", 900, 350) # 创建一只欧恩狗 dog_oen = Dog("oen", 900, 400) print("明明是美好的一天,加菲又开始跟欧恩互殴了,让我们来看看谁赢了!") while True: cat_res = cat_graf.catch(dog_oen) if cat_res: break dog_res = dog_oen.bite(cat_graf) if dog_res: break
来源:https://www.cnblogs.com/xiaodan1040/p/11932891.html