I’m not the OP, but I want to thank you for that clarification.  I had 
previously not understood the ramifications of the following in section “7. 
Simple statements” in “The Python Language Reference”:

“An augmented assignment expression like x += 1 can be rewritten as x = x + 1 
to achieve a similar, but not exactly equal effect. In the augmented version, x 
is only evaluated once. Also, when possible, the actual operation is performed 
in-place, meaning that rather than creating a new object and assigning that to 
the target, the old object is modified instead.”

Thanks again.

Bev

> On Sep 19, 2019, at 5:45 AM, Richard Damon <rich...@damon-family.org> wrote:
> 
> I think the issue is that x += 1 isn't exactly like x = x + 1, and this
> is one case that shows it. x = x + 1 is an assignment to the symbol x,
> which makes x a local, and thus the read becomes an undefined symbol. x
> += 1 is different, it isn't a plain assignment so doesn't create the
> local. The read of x is inherently tied to the writing of x so x stays
> referring to the global.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to