>>> 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的情況,發現:
>>> 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字串的時候也會出現,即當很短的a,b賦值很短的字串的時候,它們的id值相同,而很長的則不會;
在查閱了:
之後,可以得到乙個簡單的結論就是:直譯器在對值很小的int和很短的字串的時候做了一點小優化,只分配了乙個物件,讓它們id一樣了。
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的情況,發現 程式設計客棧 a 2 b 2 id a 21132060 id b 21132060 a 2.5 b 2.5...
python中id函式執行方式
更多程式設計教程請到 菜鳥教程 高州陽光論壇 人人影視 id object 功能 返回的是物件的 身份證號 唯一且不變,但在不重合的生命週期裡,可能會出現相同的id值。此處所說的物件應該特指復合型別的物件 如類 list等 對於字串 整數等型別,變數的id是隨值的改變而改變的。python版本 py...
python中id函式執行方式
id object 功能 返回的是物件的 身份證號 唯一且不變,但在不重合的生命週期裡,可能會出現相同的id值。此處所說的物件應該特指復合型別的物件 如類 list等 對於字串 整數等型別,變數的id是隨值的改變而改變的。python版本 python2.x python3.x python英文官方...