ps:2018-7-24 21:00:04 其实这部分主要是面向对象的复习!而不是面向过程

 #!/usr/bin/env/python
#-*-coding:utf-8-*-
'''
2018-5-12 19:07:04
直接练习 老王开枪
ps:代码太多太乱所以运行不成功
这个练习的主要目的就是面向对象编程
先定义方法根据方法来在类里面定义
'''
class Person(object):
'''人'''
def __init__(self,name):
super(Person,self).__init__()
self.name = name
self.gun =None #用来保存枪对象的引用
self.hp = 100
def anzhuang_zidan(self,dan_jia_temp,zi_dan_temp):
'''把子弹撞到弹夹'''
#弹夹,保存子弹(子弹)
dan_jia_temp.baocun_zidan(zi_dan_temp)
def anzhuang_danjia(self,gun_temp,danjia_temp):
'''把弹夹安装到枪中'''
#枪.保存弹夹(弹夹)
gun_temp.baocun_danjia(danjia_temp)
def naqiang(self,gun_temp):
'''拿起一把枪'''
self.gun =gun_temp class Gun(object):
'''枪类'''
def __init__(self,name):
super(Gun,self).__init__()
self.name =name #用来记录枪的类型
self.danjia = None #用来记录弹夹对象的引用
def baocun_dnajia(self,dan_jia_temp):
'''用一个属性来保存这个弹夹对象的引用'''
self.danjia = dan_jia_temp
# def __str__(self):
# if self.danjia:
# return "抢的信息为%s:%s"(self.name,self.danjia)
# else:
# return "抢的信息为:%s" %(self.name) class Danjia(object):
'''弹夹类'''
def __init__(self,max_num):
super(Danjia,self).__init__()
self.max_num = max_num#用来记录弹夹的最大容量
self.zidan_list =[] #用来记录所有的子弹的引用
def baocun_zidan(self,zi_dan_temp):
'''将这颗子弹保存'''
self.zidan_list.append(zi_dan_temp)
# def __str__(self):
# return "弹夹的信息为:%d/%d"(len(self.zidan_list),self.max_num) class Zidan(object):
'''子弹类'''
def __init__(self,HP):
super(Zidan,self).__init__()
self.HP = HP #这颗子弹掉的血 def main():
''' 用来控制整个程序的流程''' # 1 .创建老王对象
laowang = Person("老王")
# 2. 创建一个枪对象
ak47 = Gun("AK47")
# 3. 创建一个弹夹对象
dan_jia = Danjia(20)
# 4. 创建一些子弹
zi_dan = Zidan(10)
# 5. 老王把子弹安装到弹夹中
# 老王.安装子弹到弹夹中(弹夹,子弹)
laowang.anzhuang_zidan(dan_jia,zi_dan)
# 6. 老王把弹夹安装到枪中
#老王.安装弹夹到枪中(枪,弹夹)
laowang.anzhuang_danjia(ak47,dan_jia)
# #test 测试弹夹的信息
# print(dan_jia)
# #test:测试枪的信息
# print(ak47)
# 7. 老王拿枪
laowang.naqiang(ak47)
# test 测试老王对象 # 8. 创建一个敌人
gebi_laosong = Person("隔壁老宋")
print(gebi_laosong)
# 9. 老王开枪打敌人
if __name__ == '__main__':
main()

day_5.12 py 老王开枪demo的更多相关文章

  1. day 6 老王开枪打人

    1.图示 2 程序 1)版本1:框架的搭建 def main(): '''用来控制这个程序的流程''' pass #1.创建alex对象 #2.创建1个枪对象 #3.创建1个弹夹对象 #4.创建子弹对 ...

  2. python 案例之老王开枪

  3. Python---老王开枪

    class Person(object): """人类""" def __init__(self,name): super(Person,s ...

  4. 在昨天夜黑风高的晚上,我偷了隔壁老王的Python入门课件,由浅入深堪称完美!

    隔壁老王是一个资深码农,就业教育事业的秃顶之才昨天我下楼打酱油,看他迎面走来,满目春光我好奇的问道:老王,有什么好事,隔壁小花叫你上门了吗?老王:秘密!!我心想:哎呦~不错啊半晚之时,连猫狗都睡着了, ...

  5. 老王教您怎么做cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗

    cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗本来是出于好奇看到网上有这样的东西,学了下感觉挺简单的,如果你是cass的初学者想仅仅是想学习这个软件,不想花大价格购买正版的,这个是可以 ...

  6. 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】

    老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...

  7. javascript 老王开车去东北

    [Decode error - output not utf-8] 魔女 飞 奔驰 去 华南 [Finished in 1.1s] 需要变化的对象进行隔离.正是编程的乐趣之处 /** * by Jac ...

  8. python开发之路:python数据类型(老王版)

    python开发之路:python数据类型 你辞职当了某类似微博的社交网站的底层python开发主管,官还算高. 一次老板让你编写一个登陆的程序.咔嚓,编出来了.执行一看,我的妈,报错? 这次你又让媳 ...

  9. python之路:变量与变量基本操作(老王版)

    python开发之路:变量与变量基本操作 你是一个师范大学的优秀毕业生,现在在某某小学工作. 你想:判作业真的很累,隔壁老王现在天天玩<蓝月传奇>,银行里存满了钱.唉,每节课1个小时,每个 ...

随机推荐

  1. HTML:Browser 对象

    ylbtech-HTML:Browser 对象 1.返回顶部 1. Window 对象 Window 对象表示浏览器中打开的窗口. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 ...

  2. AMBA APB总线

    前面分析了AHB总线协议.接下来分析APB总线协议. (一) APB总线接口: PCLK APB总线时钟. PRESETn APB总线复位.低有效. PADDR 地址总线. PSELx 从设备选择. ...

  3. 开源的.NET系统推荐

    C# 源码 AForge.NET     RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的 ...

  4. 如何将 Java 项目转换成 Maven 项目

    本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明确的是,用 Maven 管理 Java 项目的确 ...

  5. bug Spring Mvc中Jsp页面获取不到Controller中的变量

    今天遇到了一个奇怪的问题: jsp代码如下: <h1>数据对比${name}</h1> 在controller里面,有赋值: @RequestMapping(value = & ...

  6. 使用yocs_velocity_smoother对机器人速度进行限制

    yocs_velocity_smoother是一个速度.加速度限制器,用来防止robot navigation的速度/转速过快,加速度/快减速过大.Bound incoming velocity me ...

  7. appium 获取android 粘贴板上的内容

    appium 新版本增加了获取粘贴板的内容.如果使用appium旧版本,获取粘贴板的内容不是那么容易的,甚至百度谷歌各种搜,都无法找到合适的解决方法.新版本获取android 粘贴板内容就显得很容易了 ...

  8. AJAX技术之DWR框架

    DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在 ...

  9. Nuget 配置文件的位置

    最近在 Visual Studio 中使用 Nuget 时,发现总是连接代理服务器,忘了什么时候配置的了,找了半天没找到配置位置,最后发现在这个地方: %appdata%\NuGet 找到 NuGet ...

  10. 【XMPP】Smack源码之初步认识

    Smack 概述 Smack是一个用于和XMPP服务器通信的类库,由此可以实现即时通讯和聊天. Smack主要优势 非常简单易用,并且有十分强大的 API.只需三行代码就可以向用户发关文本消息: XM ...