Augmented Assignment (was: Re: PEP scepticism)

Paul Prescod paulp at
Fri Jun 29 21:09:26 CEST 2001

Guido van Rossum wrote:
> The right way to think about this is "list objects are mutable and
> tuples are not".  So if you want to give a library function a sequence
> object of yours but you don't want it to be changed, pass it a tuple.
> If you want it to be changed (or don't care) pass it a list.

My point is that it is hard for a new user to "believe me" (or at least
understand me) when I say that tuples are not mutable but they see them
changing right in front of their eyes:

>>> a=(1,2,3)
>>> a+=(8,3)

The old behaviors strongly emphasized the non-mutability of things. The
new operators undermine that understanding. Maybe the benefits outweigh
this cost but I've seen this misunderstanding myself so I know it is a
real cost.
Take a recipe. Leave a recipe.  
Python Cookbook!

More information about the Python-list mailing list