zaur 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?


You don't need the (slight) complexity of += to see this. Straight assignment shows the same behavior.

Try this:
a=1
print id(a)
a=2
print id(a)

The different results from the two prints happens because Python stores integers 1 and 2 in different locations and the assignments causes a to refer to one and then the other.

Gary Herron



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to