Skip to content

Instantly share code, notes, and snippets.

@dmikurube
Created February 21, 2013 09:22
Show Gist options
  • Save dmikurube/5003446 to your computer and use it in GitHub Desktop.
Save dmikurube/5003446 to your computer and use it in GitHub Desktop.
class PredictableIterator(object):
def __init__(self, iterator):
self.iterator = iter(iterator)
self._next = None
def __iter__(self): return self
def next(self):
if self._next:
result = self._next
else:
result = next(self.iterator)
self._next = None
return result
def has_next(self):
if self._next is None:
try: self._next = next(self.iterator)
except StopIteration: self._next = False
else: self._next = True
return self._next
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment