Greg Ewing wrote: > 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.
Yeah, the various responses have persuaded me that having generators resemble threads in that they don't have a defined "return value" isn't a bad thing at all. Although that means I've gone all the way back to preferring the status quo - if you want to pass data back from a generator when it terminates, just use StopIteration(result). I'm starting to think we want to let PEP 342 bake for at least one release cycle before deciding what (if any) additional behaviour should be added to generators. Cheers, Nick. -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.blogspot.com _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com