对象封装
一个类创建的对象可以是另一个类创建的对象的属性
需求
1. 士兵有一把AK47
2. 士兵可以开火
3. 枪能够发射子弹
4. 枪装填子弹
# coding:utf-8
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
return
self.bullet_count -= 1
print '%s 发射子弹...' % self.model
print '还剩子弹 %s 发' % self.bullet_count
class Police:
def __init__(self,name):
self.name = name
self.gun = None
def fire(self):
if not self.gun:
print '没有枪'
return
self.gun.add_bullet(30)
self.gun.shoot()
ak47 = Gun('AK47')
jing_cha = Police('警察')
jing_cha.gun = ak47
jing_cha.fire()