[EMAIL PROTECTED] wrote: > (attachment is inclusief doctest) > > Ach, als we dan toch bezig zijn:
Ditto :) > 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 ^ Moet ik het echt nog een keer zeggen? > def __iter__(self): > return self.next() [ ... ] Het is nogal verwarrend een class te schrijven die XxxIterator heet en een next() method heeft die niets te maken heeft met het iterator protocol. Samen met hoe je je __iter__ geimplementeerd hebt heb je bovendien nu geen iterator maar een iterable. Je code zou alsvolgt herschreven kunnen worden: class ResultSetIterable: def __init__(self, result_set): self.rs = result_set def __iter__(self): while True: result = self.rs.fetchone() if result is not None: yield result else: break En dat kun je herschrijven zoals Martijn Pieters het al deed voor je dit postte. Het is volkomen overbodig hier een class aan vuil te maken. Mopper ik te veel? :) Just _______________________________________________ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl