在训练模型的时候希望能够反复迭代数据,这时候生成器就不太方便了,直接一个大list也比较耗费资源,这时候用可以反复迭代的迭代器就比较方便。反复迭代的关键就是在__iter__
函数中重置迭代参数,示例如下:
class MyIter():
def __init__(self):
self.i = 0
def __next__(self):
if self.i > 10:
raise StopIteration
self.i = self.i+1
return self.i
def next(self): #for python2
return self.__next__()
def __iter__(self):
self.i=0
return self