day_5.12 py 老王开枪demo
ps:2018-7-24 21:00:04 其实这部分主要是面向对象的复习!而不是面向过程
1 #!/usr/bin/env/python 2 #-*-coding:utf-8-*- 3 ''' 4 2018-5-12 19:07:04 5 直接练习 老王开枪 6 ps:代码太多太乱所以运行不成功 7 这个练习的主要目的就是面向对象编程 8 先定义方法根据方法来在类里面定义 9 ''' 10 class Person(object): 11 '''人''' 12 def __init__(self,name): 13 super(Person,self).__init__() 14 self.name = name 15 self.gun =None #用来保存枪对象的引用 16 self.hp = 100 17 def anzhuang_zidan(self,dan_jia_temp,zi_dan_temp): 18 '''把子弹撞到弹夹''' 19 #弹夹,保存子弹(子弹) 20 dan_jia_temp.baocun_zidan(zi_dan_temp) 21 def anzhuang_danjia(self,gun_temp,danjia_temp): 22 '''把弹夹安装到枪中''' 23 #枪.保存弹夹(弹夹) 24 gun_temp.baocun_danjia(danjia_temp) 25 def naqiang(self,gun_temp): 26 '''拿起一把枪''' 27 self.gun =gun_temp 28 29 30 class Gun(object): 31 '''枪类''' 32 def __init__(self,name): 33 super(Gun,self).__init__() 34 self.name =name #用来记录枪的类型 35 self.danjia = None #用来记录弹夹对象的引用 36 def baocun_dnajia(self,dan_jia_temp): 37 '''用一个属性来保存这个弹夹对象的引用''' 38 self.danjia = dan_jia_temp 39 # def __str__(self): 40 # if self.danjia: 41 # return "抢的信息为%s:%s"(self.name,self.danjia) 42 # else: 43 # return "抢的信息为:%s" %(self.name) 44 45 class Danjia(object): 46 '''弹夹类''' 47 def __init__(self,max_num): 48 super(Danjia,self).__init__() 49 self.max_num = max_num#用来记录弹夹的最大容量 50 self.zidan_list =[] #用来记录所有的子弹的引用 51 def baocun_zidan(self,zi_dan_temp): 52 '''将这颗子弹保存''' 53 self.zidan_list.append(zi_dan_temp) 54 # def __str__(self): 55 # return "弹夹的信息为:%d/%d"(len(self.zidan_list),self.max_num) 56 57 class Zidan(object): 58 '''子弹类''' 59 def __init__(self,HP): 60 super(Zidan,self).__init__() 61 self.HP = HP #这颗子弹掉的血 62 63 def main(): 64 ''' 用来控制整个程序的流程''' 65 66 # 1 .创建老王对象 67 laowang = Person("老王") 68 # 2. 创建一个枪对象 69 ak47 = Gun("AK47") 70 # 3. 创建一个弹夹对象 71 dan_jia = Danjia(20) 72 # 4. 创建一些子弹 73 zi_dan = Zidan(10) 74 # 5. 老王把子弹安装到弹夹中 75 # 老王.安装子弹到弹夹中(弹夹,子弹) 76 laowang.anzhuang_zidan(dan_jia,zi_dan) 77 # 6. 老王把弹夹安装到枪中 78 #老王.安装弹夹到枪中(枪,弹夹) 79 laowang.anzhuang_danjia(ak47,dan_jia) 80 # #test 测试弹夹的信息 81 # print(dan_jia) 82 # #test:测试枪的信息 83 # print(ak47) 84 # 7. 老王拿枪 85 laowang.naqiang(ak47) 86 # test 测试老王对象 87 88 # 8. 创建一个敌人 89 gebi_laosong = Person("隔壁老宋") 90 print(gebi_laosong) 91 # 9. 老王开枪打敌人 92 if __name__ == '__main__': 93 main()