Is this a bug?

Terry Reedy tjreedy at udel.edu
Sun Apr 24 21:32:46 EDT 2005


>    According to the 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.
>
>    I don't consider the two results you posted "similar".

It continues
"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. ...Similarly, with the exception of the 
possible in-place behavior, the binary operation performed by augmented 
assignment is the same as the normal binary operations.
"
I take the behavior observed to be the exceptional in-place behavior 
referred to.  But this could certainly be clearer.

Also, Lib Ref  2.3.6.4 Mutable Sequence Types could have a line added to 
the table specifying the the operation 's+=x' is the same as s.extend(x).

Terry J. Reedy






More information about the Python-list mailing list