重点: 一个对象的属性可以是另外一个类型创建的对象
士兵的例子
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] 突突突...子弹有: [%d]" % (self.model, self.bullet_count))
ak47 = Gun('ak47')
ak47.add_bullet(30)
ak47.shoot()
ak47.shoot()
class Soldier:
def __init__(self, name):
self.name = name
self.gun = None
def fire(self):
if self.gun is None:
print("[%s] 还没有枪..." % self.name)
return
print("冲啊... [%s]" % self.name)
self.gun.add_bullet(30)
self.gun.shoot()
jack = Soldier("jack")
jack.gun = ak47
jack.fire()
print(jack.gun)