>>>>> zaur <szp...@gmail.com> (z) wrote:

>z> On 29 авг, 16:45, zaur <szp...@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?

>z> As a result of this debate is not whether we should conclude that
>z> there should be two types of integers in python: 1) immutable numbers,
>z> which behave as constant value; 2) mutable numbers, which behave as
>z> variable value?

Numbers are immutable by nature (math). The number 3.14 remains 3.14
whatever you try to do with it. What you call an immutable number is in
fact a container that contains a number. You can change the contents of
the container, not by modifying the number in it but by replacing it
with a different number. Python has sufficient mechanisms for creating
these containers: lists, dictionaries, objects. If you think they are
not good enough then write a new one in C.
-- 
Piet van Oostrum <p...@cs.uu.nl>
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to