<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Thu., 5 Jul. 2018, 3:17 pm Guido van Rossum, <<a href="mailto:guido@python.org">guido@python.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>Let me be slightly contrarian. :-)<br></div><div dir="ltr"><br></div><div dir="ltr">On Wed, Jul 4, 2018 at 9:12 PM Chris Angelico <<a href="mailto:rosuav@gmail.com" target="_blank" rel="noreferrer">rosuav@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Definitely against augmentation, for several reasons:<br>
<br>
1) Spelling - should it be :+= or +:= ?<br></blockquote><div><br></div><div>That one's easy. As Nick's (withdrawn) PEP 577 shows it should be simply `+=`.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2) Is the result of the expression the modified value or the original?<br></blockquote><div><br></div><div>Someone (sadly I forget who) showed, convincingly (to me anyways :-) that it should return whatever the `__iadd__` method returns, or (if there isn't one) the result of `a = a + b`.<br></div><div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I think I had it as an open question in one of the earlier drafts of PEP 577.</div><div dir="auto"><br></div><div dir="auto">The subsequent rationale for it returning the modified value was that we have this existing equivalence at the statement level:</div><div dir="auto"><br></div><div dir="auto">    a += b</div><div dir="auto">    a = operator.iadd(a, b)</div><div dir="auto"><br></div><div dir="auto">So the natural expression level semantics would be:</div><div dir="auto"><br></div><div dir="auto"><span style="font-family:sans-serif">    a := operator.iadd(a, b)</span><br></div><div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto">Nick.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><br></div></div></div>
</blockquote></div></div></div>