如何多次使用生成器
2019-04-26 本文已影响0人
啦啦啦老王
我们知道,生成器返回的迭代器只能被从头到尾遍历一遍,之后再遍历就会报StopIteration异常,那么怎么样才能重复使用生成器呢。
其实只要写一个类,把生成器定义在类的__iter__方法中,之后重复使用这个类的实例就行了,因为诸如sum()、for in 循环等函数都是调用了对象内置的__iter__方法来获得迭代器的。
class ReadVisits():
def __init__(self.data):
self.data = data
def __iter__(self):
for i in data:
yield i