inconsistency with += between different types ?

Christopher A. Craig list-python at
Wed Aug 7 14:53:25 EDT 2002

Bernhard Herzog <bh at> writes:

> > You do realize that at the end of this += would only apply to lists
> > and would be exactly identical to list.append(), right? 
> More like .extend actually.

I stand corrected

> > Because ints,
> > longs, floats, tuples, and in the future rationals are all immutable
> > and thus cannot return self.
> So what? Immutable objects don't have to implement __iadd__ et al. at
> all and in fact ints don't have __iadd__. Python falls back to calling
> __add__ and normal assignment automatically.

While this is true, "fixing" __iadd__ as he requested and retaining
that behavior wouldn't solve the problem he is trying to address (the
differences between tuples and lists in augmented assignment).  I
presumed that when he said this he meant augmented assignment in
general rather than just __iadd__

Christopher A. Craig <list-python at>
"The mistakes made by Congress wouldn't be so bad if the next Congress
didn't keep trying to correct them." Cullen Hightower

More information about the Python-list mailing list