<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Aug 28, 2018 at 12:57 PM Guido van Rossum <<a href="mailto:guido@python.org">guido@python.org</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>However, a user who doesn't typically think about the actual semantics of iterable unpacking and tuple packing might think this would instead mean the following:</div><div><br></div><div>  a += x</div><div>  b += x</div><div>  c += x</div><div><br></div><div>IOW they might think that this is a clever way to increment three variables at once:</div><div><br></div><div>  a, b, c += 1</div><div><br></div><div>This ambiguity (in naive users' minds) leads me to frown upon the proposal.</div></div></blockquote><div><br></div><div>This sort of broadcasting is often quite convenient in Numpy, where many arithmetic operators will accept scalars or vectors and generally "do the right thing" in the context. It gets complicated in higher dimensions, but for 0/1-dimensions you don't need an axis-selector.</div><div><br></div><div>    abc = np.array([1, 2, 3])</div><div>    abc += 1</div><div>    print(abc) </div><div>    # [2 3 4]</div><div><br></div><div>    abc += [10, 100, 1000]</div><div>    print(abc) </div><div>    # [  12  103 1004] </div><div><br></div><div>The quirks I see are with + being a concatenation operator for lists/tuples.</div><div><br></div><div><div>    a, b = (10, 20)</div><div>    # a, b += (1, 2)</div><div>    # a, b == 11, 22?</div><div>    (a, b) + (1, 2) </div><div>    # (10, 20, 1, 2)</div></div><div><br></div><div>Nick <br></div></div></div>