<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p>> (a1, a2, a3 = 3, *args, **kwds) = (yield <expr>)</p><p>What on earth is this syntax supposed to mean? Never mind that there's<br>a yield on the RHS; it is just a parenthesized expression so it could<br>could be any other function. What on earth do you expect to happen<br>with the syntax on the left, i.e. with the part</p><p></p></blockquote><div> </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p>(a1, a2, a3 = 3, *args, **kwds) = ........whatever........</p><p></p></blockquote><div>As I said "forgeting the backward compatibility issue". Suppose we use Jacob's syntax (for argument's sake)</div><div><br></div><div>*(a1, a2, a3 = 3, *args, **kwds) = (yield expr)</div><div><br></div><div>and with g.send(*a, **k) being called, a1, a2, a3, args, kwds can be inferred using the same semantics that is used to decipher a1, a2, a3, args, kwds in a call to the following function with *a and **k as arguments:</div><div>def func(a1, a2, a3 = 3, *args, **kwds):</div><div>   ...</div><div><br></div><div>That (yield expr) can be used in expressions does not (I feel) affect this (particularly if we go with Jacob's suggestion of this being a general unpacking option), just in the same way that "a, b, *args, c = <tuple>" does not affect using tuples in expressions. But after reading your comment in another thread about those who don't know how python works should keep quiet, I guess it is best if I end this here :-)</div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p></p><p></p><p></p><p></p><p></p><p></p><p></p></blockquote>