老王开枪完成版:

class Ren:def __init__(self,name):self.name = nameself.xue = 100self.qiang = Nonedef __str__(self):return self.name + "剩余血量为:" + str(self.xue)def anzidan(self,danjia,zidan):danjia.baocunzidan(zidan)def andanjia(self,qiang,danjia):qiang.lianjiedanjia(danjia)def naqiang(self,qiang):self.qiang = qiangdef kaiqiang(self,diren):self.qiang.she(diren)def diaoxue(self,shashangli):self.xue -= shashangliclass Danjia:def __init__(self, rongliang):self.rongliang = rongliangself.rongnaList = []def __str__(self):return "弹夹当前的子弹数量为:" + str(len(self.rongnaList)) + "/" + str(self.rongliang)def baocunzidan(self,zidan):if len(self.rongnaList) < self.rongliang:self.rongnaList.append(zidan)def chuzidan(self):#判断当前弹夹中是否还有子弹if len(self.rongnaList) > 0:zidan = self.rongnaList[-1]self.rongnaList.pop()return zidanelse:return None        class Zidan:def __init__(self,shashangli):self.shashangli = shashanglidef shanghai(self,diren):diren.diaoxue(self.shashangli)class Qiang:def __init__(self):self.danjia = Nonedef __str__(self):if self.danjia:return "枪当前有弹夹"else:return "枪没有弹夹"def lianjiedanjia(self,danjia):if not self.danjia:self.danjia = danjiadef she(self,diren):zidan = self.danjia.chuzidan()if zidan:zidan.shanghai(diren)else:print("没有子弹了,放了空枪....")laowang = Ren("老王")danjia = Danjia(20)
print(danjia)i=0
while i<5:zidan = Zidan(5)laowang.anzidan(danjia,zidan)i+=1print(danjia)qiang = Qiang()
print(qiang)
laowang.andanjia(qiang,danjia)
print(qiang)#创建一个敌人
diren = Ren("敌人")
print(diren)
laowang.naqiang(qiang)laowang.kaiqiang(diren)
print(diren)
print(danjia)
laowang.kaiqiang(diren)
print(diren)
print(danjia)

老王开枪继承版

class Ren:def __init__(self,name):self.name = nameself.xue = 100self.qiang = Nonedef __str__(self):return self.name + "剩余血量为:" + str(self.xue)def anzidan(self,danjia,zidan):danjia.baocunzidan(zidan)def andanjia(self,qiang,danjia):qiang.lianjiedanjia(danjia)def naqiang(self,qiang):self.qiang = qiangdef kaiqiang(self,diren):self.qiang.she(diren)def diaoxue(self,shashangli):self.xue -= shashangliclass Danjia:def __init__(self, rongliang):self.rongliang = rongliangself.rongnaList = []def __str__(self):return "弹夹当前的子弹数量为:" + str(len(self.rongnaList)) + "/" + str(self.rongliang)def baocunzidan(self,zidan):if len(self.rongnaList) < self.rongliang:self.rongnaList.append(zidan)def chuzidan(self):#判断当前弹夹中是否还有子弹if len(self.rongnaList) > 0:zidan = self.rongnaList[-1]self.rongnaList.pop()return zidanelse:return Noneclass Zidan:def __init__(self,shashangli):self.shashangli = shashanglidef shanghai(self,diren):diren.diaoxue(self.shashangli)class Qiang:def __init__(self):self.danjia = Nonedef __str__(self):if self.danjia:return "枪当前有弹夹"else:return "枪没有弹夹"def lianjiedanjia(self,danjia):if not self.danjia:self.danjia = danjiadef she(self,diren):zidan = self.danjia.chuzidan()if zidan:zidan.shanghai(diren)else:print("没有子弹了,放了空枪....")class Sandan(Qiang):#反现了一个问题:继承来的she功能,不是我想要的,那么此时该怎么办呢?#答案:重写父类的这个方法def she(self, diren):i=0while i<3:super().she(diren)i+=1# class Sandan(Qiang):
#     #反现了一个问题:继承来的she功能,不是我想要的,那么此时该怎么办呢?
#     #答案:重写父类的这个方法
#     def she(self, diren):
#         i=0
#         while i<3:
#             zidan = self.danjia.chuzidan()
#             if zidan:
#                 zidan.shanghai(diren)
#             else:
#                 print("没有子弹了,放了空枪....")#             i+=1class AK47(Qiang):passclass M4A1(Qiang):passlaowang = Ren("老王")danjia = Danjia(20)
print(danjia)i=0
while i<5:zidan = Zidan(5)laowang.anzidan(danjia,zidan)i+=1print(danjia)qiang = Sandan()
print(qiang)
laowang.andanjia(qiang,danjia)
print(qiang)#创建一个敌人
diren = Ren("敌人")
print(diren)
laowang.naqiang(qiang)laowang.kaiqiang(diren)
print(diren)
print(danjia)
laowang.kaiqiang(diren)
print(diren)
print(danjia)

python中的类和对象2相关推荐

  1. python中的类和对象

    一.类和对象 类和对象和概念 类:共性事物的抽象,是对某一类具有共同事物的描述,是具有相同属性和方法的集合 对象:类的实例,是共性事物的一个体现,是这类事物中的每个个体 总结: 类是对象的模板,对象是 ...

  2. python中的类与对象

    参考文章:Python的类和对象 入门级讲解(简单粗暴)

  3. python中类和对象的内容_python中的类和对象

    摘要:本文主要介绍了python中的类和对象的基础内容.由于在c++中对类和对象已经有了较为深刻的认识,所以此部分就是主要熟悉一下创建方法和使用方法. 1.类.对象的创建和简单使用 主要观察创建类的方 ...

  4. python类和对象介绍_python中的类,对象,方法,属性等介绍

    注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  5. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

  6. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  7. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object):"""类里定义一类事物共同的技能.可以是变量,也可是函数.& ...

  8. python中定义类

    3.2. 定义类 Python是完全面向对象的:可以定义自已的类,从自已的或内置类进行继承,然后对生成的类进行实例化. 在Python中定义类很简单:就象定义函数,没有独立的定义接口.只要定义类,然后 ...

  9. python中的类属性和类方法_python面向对象之类属性和类方法的使用和实例

    类属性和类方法 目标 类的结构类属性和实例属性类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 1. 使用面相对象开发,第 1 步 是设计 类 2. 使用 类名() 创建对象,创建对象 的 ...

最新文章

  1. 详细介绍Vue的数据响应式
  2. Galaxy 生信平台(四):邮件与管理员配置
  3. 利用yum下载软件包的三种方法
  4. nginx配置设置,使部分页面访问跳转到404页面
  5. LiveVideoStackCon讲师热身分享 ( 二 ) —— 中美互动直播比较
  6. Win32ASM学习[2]:运算符
  7. SUN:开源在Web2.0时代
  8. 设计模式C++学习笔记之二(Proxy代理模式)
  9. Intel Quick Sync Video Encoder 2
  10. 系统集成项目管理工程师历年真题下载地址
  11. python数字转换成中文大写_Python转换数字到中文大写格式
  12. python手撕链表_图解_leetcode707_设计链表
  13. win10u盘被写保护怎么解除_win10系统U盘被写保护解除的操作方法
  14. 用友u8安装应用服务器输什么,用友u8服务器安装教程
  15. 【学习周记】学习之路,任重而道远
  16. redmibook螃蟹网卡信号差问题
  17. android如何使用ios14组件,iOS14如何添加和删除小组件 iOS14添加和删除小组件的方法...
  18. html语言中的双冒号,css单冒号和双冒号用法和区别
  19. ubuntu怎么设置系统语言英文_Ubuntu系统设置中文语言的方法教程,Ubuntu系统怎么设置中文语言?...
  20. 华师的入学计算机测试题,华师期末考试计算机练习题

热门文章

  1. xiuno论坛目录结构摸索记录【hook】
  2. 【C语言】给出一个不多于5位的正整数,要求:1.求出它是几位数;2.分别输出每一位数字;3.按逆序输出各位数字。
  3. 基于verilog状态机的八层电梯实现
  4. kernel hacking
  5. 曲线绕x轴旋转曲面方程_绕x轴旋转(微积分旋转体绕y轴旋转体积~我看不懂图片上的公式~...)...
  6. 维特比算法(基于李航)
  7. 人工智能 α-β剪枝
  8. 吉他技巧—如何推算和记忆和弦
  9. Java类加载与初始化机制实例分析
  10. 系统架构的基本设计原则