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. 基于php5.5使用PHPMailer-5.2发送邮件

    PHPMailer - A full-featured email creation and transfer class for PHP. 在PHP环境中可以使用PHPMailer来创建和发送邮件. ...

  2. framework中编译anroid工程并在模拟器上运行

    1.在eclipse下创建android工程Hello并拷贝到“源码目录/packages/experimental”下面   2.在Hello工程目录下面创建Android.mk文件,内容如下: L ...

  3. IASetIndexBuffer Offset

    这个Offset官方解释是:Offset (in bytes) from the start of the index buffer to the first index to use. 翻译成中文就 ...

  4. 利用 Express 托管静态文件

    通过 Express 内置的 express.static 可以方便地托管静态文件,例如图片.CSS.JavaScript 文件等. 将静态资源文件所在的目录作为参数传递给 express.stati ...

  5. java.lang.IllegalStateException——好头疼

    在我东,下下来一个项目总会出现启动不了的问题,这些问题往往在编译的时候发现不了,当你的服务器启动的时候,就是一片片的报错,有些问题可以通过异常的提示信息,判断出来哪里配置错了,但是也有些情况下,从异常 ...

  6. windows系统安装完后要做的事情

    完成之后 1.netplwiz关闭开机输入密码 2.这台电脑右击->属性->高级系统设置->高级->性能设置->高级->虚拟内存: 把C盘设为无分页文件,选择一个大 ...

  7. Source Insight 有用设置配置

    source insight代码对齐Tab键终极版 以前也写过一个source insight代码对齐,由于自己理解不够深刻,只能解决部分问题,不能根治在source insight中对齐的代码在XX ...

  8. Asp.Net 合并图片(二维码和其他图片合并)

    需求:根据网址生成二维码,然后再把二维码生成到背景图片上,然后显示在网页中 pic.ashx <%@ WebHandler Language="C#" Class=" ...

  9. WPF之UI虚拟化

    在WPF应用程序开发过程中,大数据量的数据展现通常都要考虑性能问题.有下面一种常见的情况:原始数据源数据量很大,但是某一时刻数据容器中的可见元素个数是有限的,剩余大多数元素都处于不可见状态,如果一次性 ...

  10. Spring Security 使用数据库用户进行认证

    本文参考或摘录自:http://haohaoxuexi.iteye.com/blog/2157769 本文使用Spring Security自带的方式连接数据库对用户进行认证. 1.Spring Se ...