我想了解 Python 中的可迭代性。
据我所知,__iter__()
应该返回一个定义了 next()
方法的对象,该方法必须返回一个值或引发 StopIteration
异常(exception)。因此,我编写了满足这两个条件的类。
但是好像不行。怎么了?
class Iterator:
def __init__(self):
self.i = 1
def __iter__(self):
return self
def next(self):
if self.i < 5:
return self.i
else:
raise StopIteration
if __name__ == __main__:
ai = Iterator()
b = [i for i in ai]
print b
最佳答案
您的 Iterator 类是正确的。你只是在这个声明中有一个错字:
if __name__ ==' __main__':
“__main__”字符串中有一个前导空格。这就是您的代码根本没有执行的原因。
关于iterator - Python 中的可迭代性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649549/