'''
1. 士兵 许三多 有一把 AK47
2. 士兵 可以开火
3. 枪 能够 发射 子弹
4. 枪 装填 子弹---增加子弹数量
'''
class Gun:
def __init__(self,type):
self.type = type
# 刚开始枪没有子弹
self.bullet_count = 0
def __str__(self):
return ("%s 已到位" % self.type)
def shoot(self):
# 1. 判断是否有子弹,如果有发射,如果没有返回
if self.bullet_count is 0:
print("%s 没有子弹,请装填子弹" % self.type)
return
self.bullet_count -= 1
print("突突突...%d" % self.bullet_count)
class Soldier:
def __init__(self,name):
self.name = name
# 新兵没有枪
self.gun = None
def fire(self,num):
# 1 判断是否有枪
if self.gun is None:
print("%s 没有枪,无法参与战斗耶!" % self.name)
return
# 有枪发出口号
self.gun.bullet_count = num
print("冲啊!"*3)
# 开火
self.gun.shoot()
# 创建枪对象
ak_47 = Gun('AK47')
# 创建士兵对象
xu_san_duo = Soldier("许三多")
# 没有枪时
print(xu_san_duo.fire(50)) # 50 -- 装50发子弹
# 有枪时
# 给许三多赋予一把枪
xu_san_duo.gun = ak_47
print(xu_san_duo.fire(50))
运行结果:没有枪时
运行结果:有枪时