[Python-Dev] New PEP 342 suggestion: result() and allow "return with arguments" in generators (was Re: PEP 342 suggestion: start(), __call__() and unwind_call() methods)

Greg Ewing greg.ewing at canterbury.ac.nz
Mon Oct 10 04:43:20 CEST 2005

Nick Coghlan wrote:

> Sometimes I miss the obvious. There's a *much*, *much* better place to store 
> the return value of a generator than on the StopIteration exception that it 
> raises when it finishes. Just save the return value in the *generator*.

I'm not convinced that this is better, because it would
make value-returning something specific to generators.

On the other hand, raising StopIteration(value) is something
that any iterator can easily do, whether it's implemented
as a generator, a Python class, a C type, or whatever.

Besides, it doesn't smell right to me -- sort of like returning
a value from a function by storing it in a global rather than
using a return statement.

Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury,	   | A citizen of NewZealandCorp, a	  |
Christchurch, New Zealand	   | wholly-owned subsidiary of USA Inc.  |
greg.ewing at canterbury.ac.nz	   +--------------------------------------+

More information about the Python-Dev mailing list