python 类调用类(属性可以是另外一个类创建的对象)
class Gun:def __init__(self,model):# 枪的类型self.model = model# 子弹数量self.bullet_number = None# 查询子弹数量def queryBulletsNum(self):return self.bu...
·
class Gun:
def __init__(self,model):
# 枪的类型
self.model = model
# 子弹数量
self.bullet_number = None
# 查询子弹数量
def queryBulletsNum(self):
return self.bullet_number
# 安装子弹
def install_bullet(self,number):
self.bullet_number = number
# 扣动扳机
def shot(self):
# 如果没有子弹则报错返回
if self.bullet_number is None:
print(u'%s没有子弹'%self.model)
return
print('Bang Bang Bang......')
# 每次开枪子弹数量递减
self.bullet_number -= 1
print('子弹数量:%s'%self.bullet_number)
class Solder:
def __init__(self,name):
# 士兵名字
self.name = name
# 新兵没有枪
self.gun = None
# 装填子弹
def fill_ammunition(self,number):
if self.gun is None:
print('%s没有枪!')
return
self.gun.install_bullet(number)
# 开枪
def fire(self):
if self.gun is None:
print('%s没有枪!')
return
self.gun.shot()
# 主程序
def Main():
# 创建士兵
Mak = Solder('makchikin')
# 创建枪
AK47 = Gun('AK47')
# Mak获得AK47
Mak.gun = AK47
# 开枪60次
for i in range(60):
# 查询子弹数量
bulletsNum = Mak.gun.queryBulletsNum()
if bulletsNum is None or bulletsNum == 0:
# 士兵装填子弹
Mak.fill_ammunition(50)
# 开火
Mak.fire()
if __name__ == '__main__':
Main()
更多推荐



所有评论(0)