class Soldier:
def __init__(self,name):
self.name=name
self.gun=None #####这里先设为None 等枪示例化后再给
def __str__(self):
return '士兵%s有一把%s,%s。'%(self.name,self.gun.model,self.gun)
#这里gun.model为枪名字 gun为gun类的str
def fire(self):
if self.gun==None:
print("没有武器!")
return False
self.gun.add_bullet(10)
self.gun.shoot()
return True
class gun:
def __init__(self,model,bullet_count=0):
self.model=model
self.bullet_count=bullet_count
def __str__(self):
return '这把%s剩余%d子弹'%(self.model,self.bullet_count)
def shoot(self):
if self.bullet_count==0:
return False
self.bullet_count-=1
print('发射一颗子弹')
return True
def add_bullet(self,count):
self.bullet_count+=count
print('填充%d颗子弹'%count)
return True
B = gun('AK-47') #填充30颗子弹
B.add_bullet(30) #发射一颗子弹
B.shoot() #射击
A=Soldier('瑞恩') #发射一颗子弹
A.gun=B #将实例化的枪给士兵
A.fire() #士兵开火
print(A) ##士兵瑞恩有一把AK-47,这把AK-47剩余38子弹。
python士兵与枪两种类连接使用
最新推荐文章于 2024-09-03 17:43:37 发布