解密python的id()函式

2021-08-27 07:28:12 字數 593 閱讀 4738

>>> 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英文官方...