def next(self):
"""Return next elem, add to cache. StopIteration passed upwards"""
next_elem = self.iter.next()
next_index = next_elem.index
self.cache_dict[next_index] = next_elem
self.cache_indicies.append(next_index)
if len(self.cache_indicies) > self.cache_size:
try:
del self.cache_dict[self.cache_indicies[0]]
except KeyError:
log.Log("Warning: index %s missing from iterator cache" %
(self.cache_indicies[0],), 2)
del self.cache_indicies[0]
return next_elem
评论列表
文章目录