# generator.py from __future__ import generators from UserList import UserList def list_iter(data): print "First pass through iterator" i = 0 while 1: try: value = data[i] i += 1 print "Item %s: %s" % (i, value) yield value except IndexError: print "Done!" return class IterableUserList(UserList): def __iter__(self): return list_iter(self.data) L = IterableUserList(['a','b','c']) iterable = iter(L) print "Now starting loop" for i in iterable: pass