In the particular situation of send() --> yield, one could do something like (forgeting the backward compatibility with respect to the return value):<div><br></div><div>gen.send(2, a2=3, e=5)</div><div><br></div><div>and in the gen:</div><div>(a1, a2, a3 = 3, *args, **kwds) = (yield <expr>)<br></div><div><br></div><div>without having to do whatever Jacob has written:</div><div>args, kwds = (yield <expr>)</div><div>(a1, a2, a3, *args), kwds = (lambda a1,a2,a3=3,*args, **kwds:<br>                             (a1,a2,a3)+args, kwds<br>                            )(*args, **kwds)<br></div><div><br></div><div><br></div><div><br></div><div><br></div>