为了账号安全,请及时绑定邮箱和手机立即绑定

请问这段代码为什么出错?

请问这段代码为什么出错?

慕哥5272408 2019-08-06 22:11:24
class number(object):     value = 0     def __next__(self):         self.value += 1         if self.value >10:             raise StopIteration         return self.value*self.value pow = number() for i in pow:     print(i)
查看完整描述

1 回答

?
pardon110

TA贡献1038条经验 获得超227个赞

要想类实例能够被for结构迭代,实例pow 必须实现迭代器协议,也就是实现__iter__ 和 __next__方法。你的number类只实现了后者,该实例并不是一个可迭代对象,还得实现__iter__魔术方法。增加如下代码即可修复错误

def __iter__(self):
  return self


查看完整回答
反对 回复 2019-08-06
  • 1 回答
  • 0 关注
  • 440 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信