• python基础之对象之间的交互


    面对对象编程之对象之间的交互

    这是一个猫狗大战的例子

    # 猫类
    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
    
  • 相关阅读:
    Redis命令行之Hash
    Redis命令行之String
    Redis配置
    访问者模式【行为模式】
    状态模式【行为模式】
    责任链模式【行为模式】
    观察者模式【行为模式】
    策略模式【行为模式】
    模板方法模式【行为模式】
    组合模式【结构模式】
  • 原文地址:https://www.cnblogs.com/xiaodan1040/p/11932891.html
Copyright © 2020-2023  润新知