[Python-ideas] return value of yield expressions

Stefan Behnel stefan_ml at behnel.de
Tue Sep 13 14:21:31 CEST 2011


Jacob Holm, 13.09.2011 13:02:
> args, kwds = (yield ret)  # any expression really
> (a1, a2, a3, *args), kwds = (lambda a1,a2,a3=default,*args, **kwds:
>                               (a1,a2,a3)+args, kwds
>                              )(*args, **kwds)

Note that recent Python versions support extended argument unpacking, so 
this works:

     a1, *other, a2 = return_some_sequence()

If you use the last value of the returned sequence (such as a tuple) to 
pass a dict, or if you return a tuple with two arguments (posargs, 
kwargdict), you basically get what you wanted above.

Time machine keys are back were they were. Nothing to see here, keep passing.

Stefan




More information about the Python-ideas mailing list