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. OpenCV3 for python3 学习笔记2

    1.安装 如果你是第一次使用OpenCV Python开发包,想要安装OpenCV Python只要执行如下命令行即可:  pip install opencv-python   如果你还想使用Ope ...

  2. 从马文到AlphaGo AI走过了怎样的70年?

    (原标题:从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?) [编者按]从19世纪中叶人工智能的萌芽时期,到现今人工智能的重生,从马文·明斯基到AlphaGo,历史上发生了哪些激动人心的故 ...

  3. Android中Bundle和Intent的区别

    Bundle的作用,以及和Intent的区别: 一.Bundle: A mapping from String values to various Parcelable types 键值对的集合 类继 ...

  4. 用oc写爬虫之HTMLParser

    最近刚好有一些小需求,就尝试用OC来写一些简单的爬虫抓取网页上的数据: 发现了一个非常好用的HTMLParser工具 ; 语法是OC的,通过分析网页结构:可以很轻松的抓取需要的数据: 但是提前需要了解 ...

  5. vim 正则替换功能

    最近使用vim的正则替换功能,非常强大 一个文件: ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, 现在需要删除逗号前面的内容,那么在vim敲入命令: :%s/.*,//g 得到的结果是: ...

  6. pid 控制算法

    http://blog.csdn.net/huangkangying/article/details/78129148 https://zh.wikipedia.org/wiki/PID%E6%8E% ...

  7. Adobe Illustrator for Mac(矢量图处理软件)破解版安装

    1.软件简介    Adobe Illustrator CC 是 macOS 系统上一款矢量绘图工具,可以说是是业界标准矢量绘图标杆,软件通过形状.色彩.效果及印刷样式,展现您的创意想法.在处理大型复 ...

  8. Swift ARC 自动引用计数

    1.ARC 引用类型在堆上的内存分配过程中有 8 字节的地址长度用来保存对象的引用计数,堆上的内存并不像栈上那样立即进行回收,系统会定时对堆上的内存进行检查,当某个实例不再被使用时,引用计数会变为 0 ...

  9. 空间谱专题02:波束形成(Beamforming)

    作者:桂. 时间:2017-08-22  10:56:45 链接:http://www.cnblogs.com/xingshansi/p/7410846.html 前言 本文主要记录常见的波束形成问题 ...

  10. MySQL 的主从原理和复制过程简述

    一.MySQL 复制的基本过程如下:1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; 2. Master 接收到来自 Slav ...