python编程基础-类的使用

创建对象时,默认调用构造方法__init__(),当删除一个对象时,同样也会默认调用一个方法,这个方法为析构方法__del__()。

逐一迭代输出的方法:首先在__init__()中定义一个list,把类的所有属性都存放进去,然后定义一个index=-1用于循环。接着,在类中写一个next(),在next()中,可以编辑停止迭代的条件(当index>xx的时候,raise StopOteration),还编辑返回list[index](),并且index++(实现逐一迭代输出类的属性)。

例子:
在这里插入图片描述
实现代码:

class Charmander:
    def __init__(self,name,gender,level,status,attribute):
        self.name = name
        self.gender = gender
        self.level=level
        #能力中除了第一个为string外,其他的需要根据level计算除了
        power=["",1,2,3,4,5,6]
        power[0]=status
        power[1]=self.level*2+10
        for index in range(2,7):
            power[index]=self.level+5
        self.power = power
        self.attribute = attribute
        #把所有属性存储在一个List中
        self.info=[self.name,self.gender,self.level,self.power,self.attribute]
        #设置一个下标用于逐一迭代输出
        self.index=-1
    #获取玩家信息
    def getName(self):
        return self.name
    def getGender(self):
        return self.gender
    def getStatus(self):
        return self.power
    def getType(self):
        return self.attribute
    #迭代升级变化
    def level_up(self):
        self.level+=1
        self.power[1]+=2
        for index in range(2,7):
            self.power[index]+=1
        #升级后原list中的属性需要更新
        self.info[2]=self.level
        self.info[3]=self.power
    #迭代输出
    def __iter__(self):
        print("名字   性别  等级  能力          属性")
        return self
    #逐一迭代
    def next(self):
        #当index>3,所有属性已经遍历完毕
        if self.index>3:
            self.index=-1
            raise StopIteration
        #遍历属性,逐一输出
        self.index+=1
        return self.info[self.index]

#升级前
player1 = Charmander("玩家1","男",5,"法师","风属性")
player1.__iter__()
#迭代使用方法
iterator = iter(player1.next,0)
for info in iterator:
    print(info)
print()
#升级后
print("升1级后:")
player1.__iter__()
player1.level_up()
iterator2 = iter(player1.next,0)
for info2 in iterator2:
    print(info2)

实现效果图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值