Home

On 2007-08-11, Alex Martelli <aleax@mac.com> wrote:
> Neil Cerutti <horpner@yahoo.com> wrote:
> ...
>> The Python Language Reference seems a little confused about the
>> terminology.
>>
>> 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=([],)
>>>> tup[0] += ['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
object.

--
Neil Cerutti

previous
next

looped include
Re: beginner question on successive factoring
Re: Where do I download Comeau compiler.
Re: [ANN] Metatest 0.1.0
PIL Error: "cannot read interlaced PNG files"
gry
Archiwizacja danych
tallman-news.org
www.bwin.com
kasyno