国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

c - 為什么python中值相等的兩個變量會指向同一個內存地址?

瀏覽:93日期:2022-07-30 11:48:25

問題描述

http://www.cnblogs.com/lolein... 下面是這個文章里面所演示的代碼,

>>> a=1>>> b=1>>> id(a)40650152>>> id(b)40650152>>> a=2>>> id(a)40650140

我有點費解的就是,按道理a和b完全就不是同一個變量,那么理論上他們無論值是什么,都應該是放在兩個不同的內存空間啊,為什么他們相等的時候就放在了同一個內存空間呢?難道是python的運行時環境會自動判斷他們的值,如果相同就放到同一個內存空間,為的是節省內存占用嗎?

問題解答

回答1:

Python實現int的時候有個小整數池。為了效率, Python首先在內心里創建出這些整數,然后復用了這部分整數,創建一個值為1的int,其實直接從這個池里拿出1。一般是-5到257。你弄個1000 500啥的看看。就不會這樣了。看看這個:python整數對象實現

回答2:

為了性能上的優化而使用了常量池。而且這也不是 python 獨有的,很多其他語言也使用了類似的技巧。

回答3:

https://github.com/python/cpy...

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 军事| 徐州市| 大渡口区| 石城县| 逊克县| 石狮市| 房山区| 延津县| 长顺县| 侯马市| 梨树县| 正安县| 绩溪县| 西乌| 沙湾县| 大英县| 冷水江市| 芮城县| 榆社县| 隆安县| 长武县| 盖州市| 霞浦县| 隆化县| 莆田市| 阿鲁科尔沁旗| 乌拉特后旗| 金门县| 普陀区| 通海县| 安乡县| 桦甸市| 饶平县| 梓潼县| 武川县| 中山市| 河东区| 海伦市| 宁安市| 株洲县| 南木林县|