Is behavior of += intentional for int?
Paul McGuire
ptmcg at austin.rr.com
Sat Aug 29 09:08:49 EDT 2009
On Aug 29, 7:45 am, zaur <szp... at gmail.com> wrote:
> Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39)
> [GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
> Type "copyright", "credits" or "license()" for more information.>>> a=1
> >>> x=[a]
> >>> id(a)==id(x[0])
> True
> >>> a+=1
> >>> a
> 2
> >>> x[0]
>
> 1
>
> I thought that += should only change the value of the int object. But
> += create new.
> Is this intentional?
ints are immutable. But your logic works fine with a mutable object,
like a list:
>>> a = [1]
>>> x = [a]
>>> print id(a) == id(x[0])
True
>>> a += [1]
>>> print a
[1, 1]
>>> print x[0]
[1, 1]
What exactly are you trying to do?
-- Paul
More information about the Python-list
mailing list