[python-nl] while-lus vraagje

Just van Rossum just at letterror.com
Mon Mar 13 15:32:24 CET 2006


Martijn Pieters wrote:

> Remco Gerlich wrote:
> > while 1:
> >     row = rs.fetchone()
> >     if not row:
> >         break
> > 
> >     # Doe iets met row
> > 
> > Of beter:
> > 
> > for row in rs.fetchall():
> >     # Doe iets met row
> 
> Nog veel beter is iteratie over een generator:
> 
> def rowset_iterate(rs):
>      while 1:
>          result = rs.fetchone()
>          if not result:
>              raise StopIteration
               ^
<stijl nitpick> Uh, als je dan toch een generator gebruikt
hoef je niet expliciet StopIteration te raisen, een break
volstaat prima. (return zou ook werken, maar break vind ik
beter in deze context.)

>          yield result
> 
> for row in rowset_iterate(rs):
>      # Doe iets met row

Just


More information about the Python-nl mailing list