[Python-3000] Is this a bug with list comprehensions or not?
Terry Reedy
tjreedy at udel.edu
Sat Jul 12 06:29:36 CEST 2008
Greg Ewing wrote:
> Adam Olsen wrote:
>> However, since the genexp considers all improper ones to be in error,
>> it could wrap them with a RuntimeError and pass it through .next()
>> instead.
>
> Would you do that only for genexps, or for generators
> in general?
For me, the former. For generators in general, it seems too magical.
Anyone who writes a generator function that calls an unknown function as
input and who worries about getting a spurious StopIteration, can choose
to wrap with try/except in the same way as genexps. And leaving the
choice explicit means that it would be an explicit part of the
definition of genexps.
> The current behaviour seems to be that if you explicitly
> raise StopIteration in a generator, the generator then
> considers itself to be exhausted (i.e. all subsequent
> calls to next() raise StopIteration as well).
>
> Is that behaviour deliberate? If so, do the reasons for
> it also apply to genexps?
>
More information about the Python-3000
mailing list