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. Session.Abandon和Session.Clear的实现和区别

    我在网上找了一个比较贴切的描述: Session.Clear()就是把Session对象中的所有项目都删除了,Session对象里面啥都没有.但是Session对象还保留.Session.Abando ...

  2. DHCP服务原理与搭建(Linux系统+路由器,二选一方案)

    大家都知道上网的最基本前提是要在终端上设置IP.子网掩码.网关.DNS等地址信息,在家里或者在办公室很多时候打开电脑后发现就可以上网,并没有手动设置IP.掩码.DNS地址也能上网,这是什么原因呢?其实 ...

  3. How to make an IntelliJ IDEA plugin in less than 30 minutes

    Sometimes it is a nice thing to extend an editor to have it do some new stuff, like being able to re ...

  4. eclipse Mars查看JDK源代码

    eclipse Mars查看JDK源代码 问题描写叙述,eclipse(mars)下看不到JDK类的声明即源代码部分的内容. 如图右击string类型: 点击打开声明.结果出现了下图所看到的的错误,无 ...

  5. sql语句语法

    13.1. 数据定义语句 . ALTER DATABASE语法 . ALTER TABLE语法 . CREATE DATABASE语法 . CREATE INDEX语法 . CREATE TABLE语 ...

  6. Certificate Formats | Converting Certificates between different Formats

    Different Platforms & Devices requires SSL certificates in different formatseg:- A Windows Serve ...

  7. C#获取网页的HTML码、下载网站图片 get post

    /// <summary> /// 获取网页的HTML码 /// </summary> /// <param name="url">链接地址&l ...

  8. 以太坊(Ethereum)智能合约NodeJS/Web3 使用

    一.概述 运行环境:Node.js.npm.Truffle.Solidity等 root@keke:~/go-ethereum# node -v v8.9.4 root@keke:~/go-ether ...

  9. 管理 Oracle Cluster Registry(OCR)

    oracle的clusterware包含两个重要组件:OCR(包含本地组件OLR)和voting disks --OCR管理oracle clusterware和oracle rac数据库的配置信息 ...

  10. Atitit 计算word ppt文档的页数

    Atitit 计算word ppt文档的页数 http://localhost:8888/ http://git.oschina.net/attilax/ati_wordutil private vo ...