On Wed, Feb 18, 2009 at 12:22 PM, Greg Ewing
I've had another idea about what to call yield-from:
y = pass g(x)
which means "run this generator, passing through any sent/yielded values etc." It's short, it's suggestive, it doesn't use any new keywords, and there's no danger of confusing it with 'yield'.
Now, you're probably reaching for the -1 button at this point, thinking "WTF? That's completely different from the existing meaning of pass!"
But there's a sense in which the existing 'pass' can be seen as a degenerate case. Consider the generator
def nada(): if False: yield
Since it never yields anything, doing
pass nada()
is effectively a no-op. Thus, 'pass' with no generator at all is a no-op as well.
There's still one remaining difference -- the presence of 'pass' with a value would make the containing function into a generator, whereas plain 'pass' wouldn't. We'd just have to live with that inconsistency.
-1000 because of that last one. -- --Guido van Rossum (home page: http://www.python.org/~guido/)