Something in the function tutorial confused me.
horpner at yahoo.com
Sat Aug 11 13:28:18 CEST 2007
On 2007-08-11, Alex Martelli <aleax at mac.com> wrote:
> Neil Cerutti <horpner at yahoo.com> wrote:
>> The Python Language Reference seems a little confused about the
>> 3.4.7 Emulating numeric types
>> 6.3.1 Augmented assignment statements
>> The former refers to "augmented arithmetic operations", which I
>> think is a nice terminology, since assignment is not necessarily
>> taking place. Then the latter muddies the waters.
> Assignment *IS* "necessarily taking place"; if you try the augmented
> assignment on something that DOESN'T support assignment, you'll get an
> exception. Consider:
>>>> tup += ['zap']
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: 'tuple' object does not support item assignment
> Tuples don't support item ASSIGNMENT, and += is an ASSIGNMENT,
> so tuples don't allow a += on any of their items.
> If you thought that += wasn't an assignment, this behavior and
> error message would be very problematic; since the language
> reference ISN'T confused and has things quite right, this
> behavior and error message are perfectly consistent and clear.
Thanks for the correction. I was under the illusion that
sometimes augmented assignment would instead mutate the
More information about the Python-list