Tuples and immutability

Eric Jacoboni eric.jacoboni at gmail.com
Sun Mar 2 08:38:51 EST 2014


Le 02/03/2014 13:32, Ian Kelly a écrit :
> On Sat, Mar 1, 2014 at 7:04 PM, Eric Jacoboni <eric.jacoboni at gmail.com> wrote:
>> In fact, i think i'm gonna forget += on lists :)
> 
> Well, do what you want, but I think you're taking the wrong lesson
> from this.  Don't forget about using += on lists.  Instead, forget
> about using assignments, augmented or otherwise, on tuple elements.
> Would you expect this to work?

Well, the thing about += on lists that makes me forget it, like i said
in my previous post, is that its behaviour is not consistent with +.

Don't get me wrong: i don't expect that modifying a tuple element works.
That's exactly my point: my initial question was, why it "half works :
it should not work at all". I was thinking that += on lists worked like
update() or extend() : modifying lists in place... It was my mistake

So, yes, i still don't get the point using a += operation, which is not
even consistent with the + operation (see my exemple on "spam" in my
previous post). The + operator to return the modified list and the
update() or extend() methods to do in place replacements are well enough
for my present needs. Maybe, in the future, i will find a use case of +=
for lists which is not covered by others methods, though... Who knows? I
don't doubt that Python designers have made this choice and this
behavior for a good reason: i've just not get it yet.



More information about the Python-list mailing list