Yielding a chain of values

Reinhold Birkenfeld reinhold-birkenfeld-nospam at wolke7.net
Wed Aug 31 07:23:03 EDT 2005


Matt Hammond wrote:
>> Well, maybe it's right both ways ;-) I.e., even though yield "is" now
>> an expression, it is valid to use it as an expression-statement which
>> evaluates the expression and discards the value. So I think you could
>> still use the currently illegal "yield in" token sequence to mean that
>> what follows is to be taken as an iterable whose full sequence is
>> to be yielded sequentially as if
>>
>>     yield in iterable
>>
>> were sugar for
>>
>>     for _ in iterable: yield _
> 
> "yield in" could make sense when thought of as an expression too.
> 
>      x = yield in iterable
> 
> Would behave like a list comprehension. x would be assigned a list  
> containing
> the results of the successive yields. Equivalent to:
> 
> 	x = [ yield r for r in iterable ]

Which is quite different from

x = (yield) in iterable

which is currently (PEP 342) equivalent to

_ = (yield)
x = _ in iterable

So, no further tinkering with yield, I'm afraid.

Reinhold



More information about the Python-list mailing list