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

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)


慕哥5272408
浏览 525回答 1
1回答

pardon110

要想类实例能够被for结构迭代,实例pow 必须实现迭代器协议,也就是实现__iter__ 和 __next__方法。你的number类只实现了后者,该实例并不是一个可迭代对象,还得实现__iter__魔术方法。增加如下代码即可修复错误def __iter__(self):   return self
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python