迭代器
创建一个迭代器需要的两个方法 iter() 与 next() 。
- iter() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 next() 方法并通过 StopIteration 异常标识迭代的完成。
- next() 方法(Python 2 里是 next ())会返回下一个迭代器对象。
- StopIteration
StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 next() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。
class my_iter:
def __init__(self, count):
self.count = count
pass
def __iter__(self):
self.a = 1
return self
def __next__(self):
if self.a < self.count:
x = self.a
self.a += 1
return x
else:
raise StopIteration
生成器
使用了 yield 的函数称为生成器