我试图理解Python中的Iterability.
据我所知,__iter__()
应该返回一个next()
定义了方法的对象,该对象必须返回一个值或引发StopIteration
异常.因此,我写了这个满足这两个条件的课程.
但它似乎没有用.怎么了?
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
Haes.. 9
你的迭代器类是正确的.你在这个声明中只有一个拼写错误:
if __name__ ==' __main__':
'__main__'字符串中有一个前导空格.这就是为什么你的代码根本没有被执行的原因.
你的迭代器类是正确的.你在这个声明中只有一个拼写错误:
if __name__ ==' __main__':
'__main__'字符串中有一个前导空格.这就是为什么你的代码根本没有被执行的原因.