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
添加回答
举报
0/150
提交
取消