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