Dangerous behavior of list(generator)

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Mon Dec 14 09:31:44 EST 2009


On 06:46 am, tjreedy at udel.edu wrote:
>On 12/13/2009 10:29 PM, exarkun at twistedmatrix.com wrote:
>>Doesn't matter. Sometimes it makes sense to call it directly.
>
>It only makes sense to call next (or .__next__) when you are prepared 
>to explicitly catch StopIteration within a try..except construct.
>You did not catch it, so it stopped execution.
>
>Let me repeat: StopIteration is intended only for stopping iteration. 
>Outside that use, it is a normal exception with no special meaning.

You cut out the part of my message where I wrote that one might have 
forgotten the exception handling code that you posit is required, and 
that the current behavior makes debugging this situation unnecessarily 
challenging.

Jean-Paul



More information about the Python-list mailing list