(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
[email protected]
http://mail.python.org/mailman/listinfo/python-nl