[Python-Dev] yield * (Re: Missing operator.call)
glyph at divmod.com
glyph at divmod.com
Sun Feb 8 02:50:07 CET 2009
On 01:00 am, greg.ewing at canterbury.ac.nz wrote:
>Guido van Rossum wrote:
>>We already have yield expressions and they mean something else...
>
>They don't have a "*" in them, though, and I don't
>think the existing meaning of yield as an expression
>would carry over into the "yield *" variant, so there
>shouldn't be any conflict.
>
>But if you think there will be a conflict, or that the
>similarity would be too confusing, maybe the new
>construct should be called something else. I'm
>open to suggestions.
I'm *already* regretting poking my head into this particular bike shed,
but...
has anyone considered the syntax 'yield from iterable'? i.e.
def foo():
yield 1
yield 2
def bar():
yield from foo()
yield from foo()
list(bar()) -> [1, 2, 1, 2]
I suggest this because (1) it's already what I say when I see the 'for'
construct, i.e. "foo then *yield*s all results *from* bar", and (2) no
new keywords are required.
More information about the Python-Dev
mailing list