体会一个对象的属性可以是另外一个类创建的对象
需求:
1.士兵许三多有一把AK47(假设新兵没有枪,枪是后加的)
2.士兵可以开火(fire)
3.枪能够发射子弹
4.枪能够装填子弹——增加子弹数量

fire方法需求:
1.判断是否有枪,没有枪没法冲锋
2.喊一声口号
3.装填子弹
4.射击

class Gun:
def __init__(self,model):
self.model=model
self.bullet_count=0

def add_bullet(self,count):
self.bullet_count+=count

def shoot(self):
if self.bullet_count<=0:
print("[%s]没有子弹了..." % self.model)
else:
self.bullet_count-=1
print("[%s]突突突...[%d]" % (self.model,self.bullet_count))


class Soldier:
def __init__(self,name):
self.name=name
self.gun=None

def fire(self):
# 针对None进行比较建议使用is
if self.gun is None:
print("[%s]还没有枪..." % self.name)
else:
print("冲啊...[%s]" % self.name)
self.gun.add_bullet(50)
self.gun.shoot()


# 创建枪
ak47=Gun("AK47")
# 创建士兵许三多
xusanduo=Soldier("许三多")
# 把枪交给许三多
xusanduo.gun=ak47
# 许三多开枪
xusanduo.fire()

执行效果:
1