![]()
class Gun:
# 初始化属性,model形参,需要定义对象时传递
def __init__(self, model):
self.model = model
self.buller_count = 0
# 添加子弹方法 ,添加count发子弹
def add_bullet(self, conunt):
self.buller_count += conunt
print("%s 装载了 %d 发子弹" % (self.model, conunt))
# 定义枪的发射方法
def shoot(self):
if self.buller_count == 0:
print("%s 没有子弹了" % self.model)
return
print("%s ---> [%d]" % (self.model, self.buller_count))
class Soldier:
def __init__(self, name):
# 定义名字属性
self.name = name
# 定义gun属性
self.gun = None # None是一个空对象常量
def fire(self):
# 判断枪是否有子弹
if self.gun is None: # is 是判断两个变量是对同一个对象引用。== 是判断内容是否相等,这里用is 或者 == 都行
print("【%s】没有枪" % self.name)
return
print("冲啊 %s" % self.name)
# 调用枪装子弹方法
self.gun.add_bullet(30)
# 调用枪射击方法
self.gun.shoot()
# 创建枪对象ak47
ak47 = Gun("ak47")
# 创建士兵对象许三多
xusanduo = Soldier("许三多")
# ak47成为许三多的属性
xusanduo.gun = ak47
#
xusanduo.fire()