zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    python写的百度贴吧相册下载
    C#的图片拼接
    删除目录下的所有".svn"文件
    centOS 6.5 yum升级 gcc4.8 然后又退回来4.4
    代理的分类简述特点
    GCC 特性整理
    纯C 实现 strpos substr strspilt str_trim
    编译putty 源码去掉 Are you sure you want to close this session? 提示
    OpenWrt tcpdump 抓包
    安卓 打飞机 app 开发 第一篇
  • 原文地址:https://www.cnblogs.com/xiaodan1040/p/11932891.html
Copyright © 2011-2022 走看看