Skip to main content
 首页 » 编程设计

Python 变量分配和 `id` 关键字

2025年05月04日14shihaiming

<分区>

Possible Duplicate:
Python “is” operator behaves unexpectedly with integers
Why (0-6) is -6 = False?

因此,在尝试使用 id(python 2.6.5)时,我注意到以下内容(shell session ):

>>> a = 1 
>>> id(a) 
140524904 
>>> b = 1 
>>> id(b) 
140524904 

当然,一旦我修改其中一个变量,它就会被分配到一个新的内存地址,即

>>> b += 1 
>>> id(b) 
140524892 

最初将具有相同值的两个变量分配给相同的内存位置或只是优化即 CPython 是正常行为吗?

附言我花了一点时间浏览 parser 中的代码,但找不到变量分配的位置和方式。