(attachment is inclusief doctest) Ach, als we dan toch bezig zijn:
class ResultSetIterator: """ Itereer over een result set van een query mbv een klasse """ def __init__(self, result_set): """Constructor """ self.rs = result_set def next(self): """Iterator """ while True: result = self.rs.fetchone() if result is not None: yield result else: raise StopIteration def __iter__(self): return self.next() # in programma: for row in ResultSetIterator(rs): print row
""" ResultSetIterator Doctests: >>> rs = ResultSet(range(4)) >>> for row in ResultSetIterator(rs): ... print row ... 0 1 2 3 >>> """ class ResultSetIterator: """ Itereer over een result set van een query mbv een klasse """ def __init__(self, result_set): """Constructor """ self.rs = result_set def next(self): """Iterator """ while True: result = self.rs.fetchone() if result is not None: yield result else: raise StopIteration def __iter__(self): return self.next() class ResultSet(list): """rs emulator voor testen """ pos = 0 def fetchone(self): self.pos += 1 if self.pos <= len(self): return self[self.pos - 1] def _test(): """Perform doctests """ import doctest doctest.testmod(verbose=1) if __name__ == "__main__": _test()
_______________________________________________ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl