python的id()函數介紹
>>> a = 2.5
>>> b = 2.5
>>> c = b
>>> a is c
False
>>> a = 2
>>> b = 2
>>> c = b
>>> a is c
True
在使用is函數的時候去打印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
當a,b為2的時候id相同,而為2.5的時候不同,這種情況在string字符串的時候也會出現(xiàn),即當很短的a,b賦值很短的字符串的時候,它們的id值相同,而很長的則不會;
查閱了如下的文章:
http://stackoverflow.com/questions/4293408/ids-of-immutable-types
http://stackoverflow.com/questions/3402679/identifying-objects-why-does-the-returned-value-from-id-change
之后,得到一個簡單的結論:解釋器在對值很小的int和很短的字符串的時候做了一點小優(yōu)化,只分配了一個對象,讓它們id一樣了。
相關文章
Python結合MySQL數據庫編寫簡單信息管理系統(tǒng)完整實例
最近Python課堂上布置了綜合實訓,實驗目標是設計一個信息管理系統(tǒng),下面這篇文章主要給大家介紹了關于Python結合MySQL數據庫編寫簡單信息管理系統(tǒng)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06解決jupyter notebook 出現(xiàn)In[*]的問題
這篇文章主要介紹了解決jupyter notebook 出現(xiàn)In[*]的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04