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. Redis集群简记

    Redis集群 http://doc.redisfans.com/topic/cluster-tutorial.html redis 集群是为了多个节点之间数据的共享和集群高可用的保证. redis ...

  2. inet_ntoa内存问题

    最近写的一个程序,大致用到以下代码: WSADATA wsaData; WSAStartup (MAKEWORD( 2, 2 ),&wsaData); struct addrinfo *aiL ...

  3. 阮一峰的js教程,值得一读

    http://javascript.ruanyifeng.com/introduction/intro.html

  4. 常见的机器学习&数据挖掘知识点

    原文:http://blog.csdn.net/heyongluoyao8/article/details/47840255 常见的机器学习&数据挖掘知识点 转载请说明出处 Basis(基础) ...

  5. Centos7安装Tomcat并部署DubboAdmin的War包并配置自动启动

    一.安装过程 1.打开官网,在左侧选择要下载的版本,比如下下载Tomcat8:https://tomcat.apache.org/download-80.cgi 2.找到tar.gz的下载地址:htt ...

  6. 树莓派3中没有/dev/video0的解决方法(使用OpenCV编程调用树莓派摄像头的方法)

    一.问题 使用下列方法调用OpenCV编程调用树莓派摄像头时总是失败,提示调用Grabber的start()时失败. import org.bytedeco.javacpp.opencv_core; ...

  7. Mysql INSERT、REPLACE、UPDATE的区别

    用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSE ...

  8. JDK自带JVM性能调优监控工具jps、jstack、jmap、jhat、jstat

    原文地址:https://www.jianshu.com/p/db954cb968fb JVM性能调优监控工具jps.jstack.jmap.jhat.jstat位于JDK的bin目录,这些工具短小精 ...

  9. s:if 标签 字符串比较 正确用法和错误用法

    transaction.tjpopState 该对象在后台是枚举类型,在前台需要转为字符串才能比较. 错误一: <s:if test='transaction.tjpopState!=" ...

  10. Windows 不能复制文件到远程服务器的解决办法

    1.  开始 -> 运行->浏览->C:\Windows\System32\rdpclip.exe->打开. 2. 打开资源管理器的进程可以看到 rdp复制粘贴正在运行,即可.