(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

Antwoord per e-mail aan