一.简介
通过函数进行操作,实际可以扩展为图形操作的

二.代码
#!/usr/bin/python3#人类模板classPeople():-
def __init__(self, name, age, bullet): self.name = nameself.age = ageself.gnu =None#枪械为空self.bullet = bullet #发放多少子弹-
def display_info(self): -
print("动作--查看信息") -
print("姓名:"self.name) -
print("年龄:"str(self.age)) -
if self.gnu:#判断一下是否持有枪械 -
print("枪械:"self.gnu.name) -
else: -
print("枪械:无") -
print("剩余子弹:"str(self.bullet)) -
print("") -
def take_gnu(self, gnu_name):#拿枪 -
print("动作--拿枪") -
if self.gnu: -
print("手里已经有"self.gnu.name) -
else: self.gnu =Gnu(gnu_name)#这里没枪械,则将枪的对象,赋值给gnu这个变量-
print("获得一把"self.gnu.name) -
print("") -
def zhuang(self):#装弹 -
print("动作--装弹") hao = self.gnu.inst_bullet(self.bullet)#把当前子弹数告诉他-
if hao ==3: -
print("子弹已经是满的,无需装载") -
elif hao ==9: -
print("剩余子弹数不够装满") -
else: self.bullet = self.bullet - hao #这里则返回消耗的子弹数,用于扣除当前子弹数-
print("已经装载子弹:"str(hao)) -
print("") -
def fashe(self):#发射 -
print("动作--发射子弹") self.gnu.emission_bullet()#装子弹,打枪classGnu():-
def __init__(self, name): self.name = nameself.bullet =0-
def inst_bullet(self, last_bullet):#装弹 -
if self.bullet ==20:#如果满弹夹,则无法装弹,返回3,在人的类那里判断 -
return3 -
else: linshi_bullet =20- self.bullet-
if last_bullet > linshi_bullet:#剩余子弹是否小于该补充的子弹 self.bullet =20-
return linshi_bullet -
else: -
return9 -
def emission_bullet(self):#发射 -
if self.bullet >0: self.bullet = self.bullet -1-
print("发射了一颗子弹") -
else: -
print("没有子弹了") -
print("") #初始化和查看信息ren =People("张三",15,200)ren.display_info()#拿枪ren.take_gnu("ak47")#发射子弹和装弹,主要是测试没有子弹是否可以发射ren.fashe()ren.zhuang()#发射2发ren.fashe()ren.fashe()#装弹2次,测试是否可以重复装弹ren.zhuang()ren.zhuang()#显示信息ren.display_info()


