体会一个对象的属性可以是另外一个类创建的对象
需求:
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): 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()
|
执行效果: