1.训练要点
(1)掌握游戏角色的数据属性的设置,以及相应类方法的创建。
(2)掌握类和对象的创建,以及对象属性的私有化方法。
(3)掌握迭代函数的使用,让角色在升级时提升各个属性。
2.需求说明
游戏角色的数据属性:名字(name)、性别( gender)、等级( level).能力( status、HP、攻击,防御,特攻,特防、速度、属性(type)。
在能力中,除了HP为level*2+10之外,其他能力均为level+5。
类方法有getName雨数(获取角色的名字,返回类型:str )、getGender 丽数(获取角色的性别,返回类型!:str )、getStatus函数(返回角色的能力,返回类型:list )、
getType函数(返回角色的属性)。
迭代升级变化: level_ up 函数,每升- -级,HP 增加2点,其他属性增加1点。
迭代函数:_ _iter_ 函数, 输出“名字属性性别等级能力”。
逐一访问属性: next 函数,当迭代到最后-一个属性时,返回结果。
3.实训思路及步骤
(1 )创建类Charmander, 设置各个属性。
(2)定义类的方法返回属性值。
(3)根据等级进行迭代,改变相应的属性值。
(4)调用类Charmander,创建对象并命名为pokemonl,访问对象属性,调用iter函数,
输出结果。
____________________________________________________________________________
class Charmander: def __init__(self,name,gender,level,type): self.name=name self.gender=gender self.level=level self.HP=level*2+10#HP self.status=level+5#status self.g=level+5#攻击 self.f = level + 5#防御 self.t1 = level + 5#特攻 self.t2=level+5#特防 self.s=level+5#速度 self.type=type self.N=[self.HP,self.status,self.g,self.f,self.t1,self.t2,self.s] self.index=-1 def getName(self): return self.name def getGender(self): return self.gender def getType(self): return self.type def getstatus(self): return self.status def level_up(self): self.level+=1 self.HP+=2 self.status+=1 self.g+=1 self.f+=1 self.t1+=1 self.t2+=1 self.s+=1 self.N=[self.HP,self.status,self.g,self.f,self.t1,self.t2,self.s] return self.N def __iter__(self): print('名字:',self.getName(),end='') print('性别:',self.getGender(),end='') print('属性:',self.getType(),end='') print('等级:',self.level,end='') print('能力:',self.N,end='') return self def next(self): if self.index==len(self.N)-1: raise StopIteration self.index+=1 self.level_up() pokemonl = Charmander('小火龙','男',1,'属性') print('名字:',pokemonl.getName()) print('性别:',pokemonl.getGender()) print('等级:',pokemonl.level) print('属性:',pokemonl.getType()) print('能力:',pokemonl.N)