什么是python的id函數(shù)
python官方給出的id解釋為
id(object)Return the “identity” of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same?id()?value.CPython implementation detail:?This is the address of the object in memory.
由此可以看出:
1、id(object)返回的是對象的“身份證號”,唯一且不變,但在不重合的生命周期里,可能會出現(xiàn)相同的id值。此處所說的對象應(yīng)該特指復(fù)合類型的對象(如類、list等),對于字符串、整數(shù)等類型,變量的id是隨值的改變而改變的。
2、一個(gè)對象的id值在CPython解釋器里就代表它在內(nèi)存中的地址。(CPython解釋器:http://zh.wikipedia.org/wiki/CPython)
class Obj(): def __init__(self,arg): self.x=argif __name__ == ’__main__’: obj=Obj(1) print id(obj) #32754432 obj.x=2 print id(obj) #32754432 s='abc' print id(s) #140190448953184 s='bcd' print id(s) #32809848 x=1 print id(x) #15760488 x=2 print id(x)
令外,用is判斷兩個(gè)對象是否相等時(shí),依據(jù)就是這個(gè)id值
class Obj(): def __init__(self,arg): self.x=arg def __eq__(self,other): return self.x==other.x if __name__ == ’__main__’: obj1=Obj(1) obj2=Obj(1) print obj1 is obj2 #False print obj1 == obj2 #True lst1=[1] lst2=[1] print lst1 is lst2 #False print lst1 == lst2 #True s1=’abc’ s2=’abc’ print s1 is s2 #True print s1 == s2 #True a=2 b=1+1 print a is b #True a = 19998989890 b = 19998989889 +1 print a is b #False
is與==的區(qū)別就是,is是內(nèi)存中的比較,而==是值的比較。
知識點(diǎn)擴(kuò)展:
Python id() 函數(shù)
描述
id() 函數(shù)返回對象的唯一標(biāo)識符,標(biāo)識符是一個(gè)整數(shù)。
CPython 中 id() 函數(shù)用于獲取對象的內(nèi)存地址。
語法
id 語法:
id([object])
參數(shù)說明:
object -- 對象。
返回值
返回對象的內(nèi)存地址。
實(shí)例
以下實(shí)例展示了 id 的使用方法:
>>>a = ’runoob’>>> id(a)4531887632>>> b = 1>>> id(b)140588731085608
到此這篇關(guān)于什么是python的id函數(shù)的文章就介紹到這了,更多相關(guān)python里id函數(shù)是什么內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解CSS不定寬溢出文本適配滾動(dòng)2. python 批量下載bilibili視頻的gui程序3. Python實(shí)現(xiàn)查找數(shù)據(jù)庫最接近的數(shù)據(jù)4. CSS自定義滾動(dòng)條樣式案例詳解5. python b站視頻下載的五種版本6. python中if嵌套命令實(shí)例講解7. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))8. 如何用python插入獨(dú)創(chuàng)性聲明9. python鏈表類中獲取元素實(shí)例方法10. 使用css實(shí)現(xiàn)全兼容tooltip提示框
