烤土豆应用: 示例属性如下:
cookedLevel : 这是数字;0~3表示还是生的,超过3表示半生不熟,超过5表示已 经烤好了,超过8表示已经烤成木炭了!我们的地瓜开始时时生的
cookedString : 这是字符串;描述地瓜的生熟程度 condiments : 这是地瓜的配料列表,比如番茄酱、芥末酱等
示例方法如下:
cook() : 把地瓜烤一段时间 addCondiments() : 给地瓜添加配料 __init__() : 设置默认的属性 __str__() : 让print的结果看起来更好一些
class Potato:
def __init__(self):
#烤的等级
self.cookLevel=0
#烤的程度
self.cookString="生的!"
#佐料
self.condiments=[]
def cook(self,time):
if time<0:
print("有问题")
else:
self.cookLevel+=time
if self.cookLevel<=3:
self.cookString="省的!"
elif self.cookLevel<=5:
self.cookString="半生不熟!"
elif self.cookLevel<=8:
self.cookString="熟了!"
else:
self.cookString="烤焦了!"
def addCondiments(self,condiment):
self.condiments.append(condiment)
def __str__(self):
s="等级: %s,程度:%s"%(selfcookLeval,selfcookstring)
ss=",佐料:"
if len(self.condiments)>0:
for condiment in condiments:
ss+=condiment+""
else:
ss+="无佐料"
return s+ss
p=Potato()
print(p)
print("烤1分钟")
p.print(2)
print(p)
print("烤4分钟")
p.print(4)
p.addCondiments("孜然")
print(p)
开枪案例:
'''
人
姓名 血量 枪
装子弹(弹夹,子弹)
弹夹.保存(子弹)
装弹夹(枪,弹夹)
枪.连接(弹夹)
拿枪(枪)
自己的枪=枪
开枪(敌人)
枪.射子弹(敌人)
掉血(杀伤力)
血量-=杀伤力
枪
弹夹
连接(弹夹)
射子弹(敌人)
子弹=弹夹.取子弹()
子弹.伤害敌人(敌人)
弹夹
总容量
当前容量
取子弹()
当前容量-1
return 子弹
保存子弹(子弹)
当前容量+1
子弹
杀伤力
伤害敌人(敌人)
敌人.掉血(杀伤力)
'''
class Ren:
def __init__(self,name):
self.name=name
self.xue=100
self.qiang=None
#安子弹:弹夹 子弹
def anzidan(self,danjia,zidan):
danjia.baocunzidan(zidan)
#安弹夹:枪 弹夹
def andanjia(self,qiang,danjia):
qiang.liandanjia(danjia)
#拿枪:枪
def naqiang(self,qiang):
self.qiang=qiang
def kaiqiang(self,animy):
self.qiang.shezidan(animy)
def diaoxue(self,shashangli):
self.xue-=shashangli
def __str__(self):
s="姓名: %s,血量: %s"%(self.name,self.xue)
if self.qiang!=None:
s+=",是否有枪:有"
else:
s+=",是否有枪:无"
return s
class Qiang:
def __init__(self):
self.danjia=None
def lianjiedanjia(self,danjia):
self.danjia=danjia
def shezidan(self,animy):
if self.danjia.rongliangList>0:
zidan=self.danjia.chuzidan()
zidan.shanghai(animy)
else:
print("没子弹了!快快装弹")
def __str__(self):
if self.danjia!=None:
return "枪有弹夹"
else:
return "没有子弹"
class ZiDan:
def __init__(self,shashangli):
self.shashangli=shashangli
def shanghai(self,animy):
animy.diaoxue(self.shashangli)
class DanJia:
def __init__(self,rongliang):
#弹夹的容量
self.rongliang=rongliang
#弹夹的空间
self.rongliangList=[]
def baocunzidan(self,zidan):
if len(self.rongliangList)>=self.rongliang:
print("弹夹已满")
else:
self.rongliangList.append(zidan)
def chuzidan(self):
zidan=self.rongliangList[-1]
self.rongliangList.pop()
return zidan
def __str__(self):
s="当前子弹数量: %s/%s"(len(self.rongliangList),self.rongliang)
return s
#Begin....................................................
laozhang=Ren("老张")
print(laozhang)
danjia=DanJia(30)
print(danjia)
#给弹夹装5颗子弹
for i in range(5):
zidan=ZiDan(8)
laozhang.anzidan(danjia,zidan)
print(danjia)
qiang=Qiang()
print(qiang)
laozhang.andanjia(qiang,danjia)
print(laozhang)
print(qiang)
laozhang.naqiang(qiang)
print(laozhang)
laowang=Ren("老王")
for i in range(5):
print("老张开枪了")
laozhang.kaiqiang(laowang)
print(danjia)
print(laowang)