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()

 

posted @ 2018-05-12 22:07  我想喝杨枝甘露~  阅读(277)  评论(0编辑  收藏  举报