python的id()函數(shù)解密過程
更新時間:2012年12月25日 10:33:22 作者:
id()函數(shù)在使用過程中很頻繁,為此本人對此函數(shù)深入研究下,曬出代碼和大家分享下,希望對你們有所幫助
>>> a = 2.5
>>> b = 2.5
>>> c = b
>>> a is c
False
>>> a = 2
>>> b = 2
>>> c = b
>>> a is c
True
今天在使用is函數(shù)的時候去打印a,b分別被賦值為2.5 和2的情況,發(fā)現(xiàn):
>>> a = 2
>>> b = 2
>>> id(a)
21132060
>>> id(b)
21132060
>>> a = 2.5
>>> b = 2.5
>>> id(a)
19622112
>>> id(b)
29321464
當(dāng)a,b為2的時候id相同,而為2.5的時候不同,這種情況在string字符串的時候也會出現(xiàn),即當(dāng)很短的a,b賦值很短的字符串的時候,它們的id值相同,而很長的則不會;
之后,可以得到一個簡單的結(jié)論就是:解釋器在對值很小的int和很短的字符串的時候做了一點小優(yōu)化,只分配了一個對象,讓它們id一樣了。
>>> b = 2.5
>>> c = b
>>> a is c
False
>>> a = 2
>>> b = 2
>>> c = b
>>> a is c
True
今天在使用is函數(shù)的時候去打印a,b分別被賦值為2.5 和2的情況,發(fā)現(xiàn):
>>> a = 2
>>> b = 2
>>> id(a)
21132060
>>> id(b)
21132060
>>> a = 2.5
>>> b = 2.5
>>> id(a)
19622112
>>> id(b)
29321464
當(dāng)a,b為2的時候id相同,而為2.5的時候不同,這種情況在string字符串的時候也會出現(xiàn),即當(dāng)很短的a,b賦值很短的字符串的時候,它們的id值相同,而很長的則不會;
之后,可以得到一個簡單的結(jié)論就是:解釋器在對值很小的int和很短的字符串的時候做了一點小優(yōu)化,只分配了一個對象,讓它們id一樣了。
相關(guān)文章
利用PyQt5模擬實現(xiàn)網(wǎng)頁鼠標(biāo)移動特效
不知道大家有沒有發(fā)現(xiàn),博客園有些博客左側(cè)會有鼠標(biāo)移動特效。通過移動鼠標(biāo),會形成類似蜘蛛網(wǎng)的特效,本文將用PyQt5實現(xiàn)這一特效,需要的可以參考一下2022-03-03Python開發(fā)必知必會標(biāo)識符UUID全面使用指南
在Python編程中,UUID(通用唯一標(biāo)識符)是一個非常有用的工具,用于生成唯一的標(biāo)識符,本文將深入探討Python中UUID的用法、不同版本的UUID、以及如何在實際應(yīng)用中充分利用UUID的優(yōu)勢2023-12-12Pygame游戲開發(fā)之太空射擊實戰(zhàn)添加圖形篇
相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,在本課中,我們將討論如何在游戲中使用預(yù)先繪制的圖形2022-08-08Python實現(xiàn)的井字棋(Tic Tac Toe)游戲示例
這篇文章主要介紹了Python實現(xiàn)的井字棋(Tic Tac Toe)游戲,結(jié)合實例形式分析了井字棋的原理及Python相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-01-01Django接受前端數(shù)據(jù)的幾種方法總結(jié)
下面小編就為大家?guī)硪黄狣jango接受前端數(shù)據(jù)的幾種方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11關(guān)于python selenium 運行時彈出窗口問題
最近在做一個網(wǎng)頁代填項目,用到了python的selenium知識,經(jīng)過了各種嘗試與搜索最后終算是較完美的解決了,下面小編給大家?guī)砹藀ython selenium 運行時彈出窗口問題,感興趣的朋友一起看看吧2021-11-11