Python——类的封装

 1 class Gun:
 2     def __init__(self, model):
 3 
 4         # 1. 枪的型号
 5         self.model = model
 6 
 7         # 2. 子弹的数量
 8         self.bullet_count = 0
 9 
10     def add_bullet(self, count):
11 
12         self.bullet_count += count
13 
14     def shoot(self):
15 
16         # 1. 判断字弹的数量
17         if self.bullet_count <= 0:
18             print("[%s] 没有字弹了..." % self.model)
19             return
20 
21         # 2. 发射子弹
22         self.bullet_count -= 1
23 
24         # 3. 提示发射信息
25         print("[%s] 突突突...子弹有: [%d]" % (self.model, self.bullet_count))
26 
27 
28 # 创建枪对象
29 ak47 = Gun('ak47')
30 ak47.add_bullet(30)
31 ak47.shoot()
32 ak47.shoot()
33 
34 
35 class Soldier:
36     def __init__(self, name):
37         self.name = name
38         self.gun = None    # 私有
39 
40     def fire(self):
41         # 1. 判断士兵是否有枪
42         if self.gun is None:   # 身份运算符(is) 可以替换(==)
43             print("[%s] 还没有枪..." % self.name)
44             return
45 
46         # 2. 口号
47         print("冲啊... [%s]" % self.name)
48 
49         # 3. 装子弹
50         self.gun.add_bullet(30)
51 
52         # 4. 发射子弹
53         self.gun.shoot()
54 
55 # 创建一个士兵
56 jack = Soldier("jack")
57 jack.gun = ak47
58 jack.fire()
59 #print(jack.gun)

 

输出:

C:\Users\79453\Anaconda3\python.exe "D:/PyCharm 2018.1/pycorrector-master/tests/self_model.py"
[ak47] 突突突...子弹有: [29]
[ak47] 突突突...子弹有: [28]
冲啊... [jack]
[ak47] 突突突...子弹有: [57]

Process finished with exit code 0

 

转载于:https://www.cnblogs.com/baobaotql/p/10714258.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值