[Python-Dev] PEP 380 (yield from a subgenerator) comments

Nick Coghlan ncoghlan at gmail.com
Sun Mar 29 03:14:49 CEST 2009


Greg Ewing wrote:
> Guido van Rossum wrote:
> 
>> But it's been answered already -- we can't change the meaning of
>> StopIteration() with a value unequal to None, so it has to be a
>> separate exception, and it should not derive from StopIteration.
> 
> How about having StopIteration be a subclass of the
> new exception? Then things that want to get generator
> return values only have one exception to catch, and
> things that only know about StopIteration will fail
> to catch the new exception.

I actually like that, because it means that "coroutine-y" code could
pretty much ignore the existence of StopIteration (despite it existing
first).

It would also mean that it wouldn't matter if "return" and "return None"
both raised StopIteration, since they would still be intercepted by
GeneratorReturn exception handlers.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------


More information about the Python-Dev mailing list