Python如何爲文字分配內存地址?文字的內存地址
>>> id(1)
4298171352
>>> id(2)
4298171328
>>> id(1.0019)
4299162496
>>> id(1.0025)
4299162496
>>> id(1.00999)
4299162496
>>> a = 1.0025
>>> b = 1.00999
>>> id(a)
4299162496
>>> id(b)
4299162472
>>>
[email protected] ~ $ python
Python 2.7.10 |Anaconda 2.2.0 (x86_64)| (default, May 28 2015, 17:04:42)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> id(1)
4298171352
它是如何,1.0025和1.0999對應於相同的存儲器位置,但是,當我設置a和b等於那些現在有不同的存儲位置的相應值?當我重新啓動Python時,它的內存地址是一樣的嗎?
此外,這是否意味着每個整數和分箱浮點數和字符都有一個預先存在的內存地址?
由於您沒有在任何位置分配值,因此可以重新使用內存。 – Barmar
Python緩存小整數(我現在不記得確切的範圍),並且由於緩存是在啓動時完成的,從一次運行到下一次運行它們具有相同的內存地址似乎是合理的 - 但是,沒有關於python內存分配器如何工作的專家(以及它如何與操作系統的內存分配器交互)。 – mgilson
另請參閱:http://stackoverflow.com/q/306313/748858 – mgilson