082 实例 人狗大战

  • 定义一个狗类
class Dog:
    type_dog = '藏獒'

    # 对象生成的属性-->通过__init__方法
    def __init__(self,name,aggressivity,hp=100):
        self.name = name
        self.aggressivity = aggressivity
        self.hp = hp

    # 定义对象相同的方法
    def bite(self,target):
        # target.hp-->人的血量
        # self.aggressivity->当前狗的攻击力
        target.hp -= self.aggressivity
        print(f"狗的品种{self.type_dog}\n"
              f"{self.name}咬了人{target.name}\n"
              f'{target.name}掉血{self.aggressivity}\n'
              f'{target.name}的血量剩余{target.hp}\n')
  • 定义一个人类
class Human:

    # 对象生成的属性-->通过__init__方法
    def __init__(self, name, aggressivity, hp=100):
        self.name = name
        self.aggressivity = aggressivity
        self.hp = hp

    # 定义对象相同的方法
    def bite(self, target):
        # target.hp-->狗人的血量
        # self.aggressivity->当前人的攻击力
        target.hp -= self.aggressivity
        print(
              f"{self.name}人咬了狗{target.name}\n"
              f"{target.name}掉血{self.aggressivity}\n"
              f"{target.name}的血量剩余{target.hp}\n")
  • 实例化产生狗对象

    dog2 = Dog('旺财',10,200)
    nick = Human('nick',50)
    dog2.bite(nick)

    狗的品种藏獒
    旺财咬了人nick
    nick掉血10
    nick的血量剩余90

  • 实例化产生人对象
    nick = Human('nick',50)
    dog2 = Dog('旺财',10,200)
    nick.bite(dog2)

    nick人咬了狗旺财
    旺财掉血50
    旺财的血量剩余150

原文地址:https://www.cnblogs.com/xichenHome/p/11414736.html

时间: 2024-11-01 23:14:33

082 实例 人狗大战的相关文章

python开发面向对象基础:人狗大战学面向对象

一,通过函数写人狗大战这个故事 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #1.函数 人模子 5 def person(name,level,life_value): 6 p_dic = { 7 'name':name, 8 'level':level, 9 'life_value':life_value 10 } 11 return p_dic 12 joker = person('joker',100,4000) 13 14 #函数

python开发之旅——面向对象【人狗大战】

class Dog: role = 'Dog' def __init__(self,name,breed,attack_val): self.name = name self.breed = breed self.attack_val = attack_val self.life_val = 100 def bite(self,person): person.life_val -= self.attack_val print('狗%s咬人%s 人掉了%s血,还剩%s血'%(self.name,p

面向对象方法实战 -人狗大战

class Animal: #定义一个动物类 def __init__(self,name,hp,attack): self.name =name self.hp =hp self.attack =attack class Person(Animal): #继承动物类 def dg(self,dog): #创建人打狗的方法 dog.hp-=self.attack class Dog(Animal): #继承动物类 def yr(self,peole): #创建狗咬人的方法 peole.hp-=s

Python学习--第六周

本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢? 你搜罗了自己掌握的所有技能,写出了下面的代码来描述这两个角色 1 def person(name,age,sex,job): 2 data = { 3 '

Python学习之旅—面向对象进阶知识:类的命名空间,类的组合与继承

前言 上篇博客笔者带领大家初步梳理了Python面向对象的基础知识,本篇博客将专注于解决三个知识点:类的命名空间,类的组合以及面向对象的三大特性之一继承,一起跟随笔者老看看今天的内容吧. 1.类的命名空间 在上一篇博客中,我们提到过对象可以动态添加属性,一起来回忆下昨天的知识点,看如下的代码: class A: pass a = A() a.name = 'alex' print(a.name) 这里我们手动为a对象添加了一个属性name,然后直接打印可以得到a对象的名称.通过这个例子,我们可以

Python Day23

面向对象2: 一.之前的知识回顾: 1.类 具有相同属性.和方法的一类事物对象(实例) 具体的某一个人事物实例化 对象=类 的过程 2.类的的定义 : class关键字 类名的首字母大写3.而类有两种属性:静态属性和动态属性   1.静态属性就是直接在类中定义的变量 2.动态属性就是定义在类中的方法 4.对象的属性: 一开始的时候:通过init方法初始化来的 在类内调用对象的属性:self.属性名 在类外调用对象的属性:对象名.属性名 调用方法的时候: 对象.方法名 不必传的参数:self当类实

python开发面向对象基础:组合&amp;继承

一,组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合      人类装备了武器类就是组合 1.圆环,将圆类实例后传给圆环类 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #circle,圆类 5 from math import pi 6 class Circle: 7 def __init__(self,radius): 8 self.radius = radius 9 def perimeter(self): 10

python之路 面向对象(一)

面向过程vs面向对象 面向过程的核心是过程,是解决问题的步骤. 优点:极大降低了写程序的复杂度,只需顺着要执行的步骤,码代码即可. 缺点:一套程序解决一个问题,牵一发动全身. 面向对象的核心是对象. 优点:解决了程序的扩展性,对某一个单一对象的修改,会映射到整个体系中. 缺点:可控性差,无法向面向过程一样可以很精准的预测到结果,面向对象程序一旦开始就由对象之间的交互解决问题,无法预测结果. 类和对象(实例) python中一切皆对象,类型的本质就是类,包括字典,列表,数字,字符串等. 在pyth

Day6 - Python基础6 面向对象编程

Python之路,Day6 - 面向对象学习 本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢? 你搜罗了自己掌握的所有技能,写出了下面的代码来描述这两个角色 1 2 3 4 5 6 7 8 9 10 11