創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站服務項目包括廣西網(wǎng)站建設、廣西網(wǎng)站制作、廣西網(wǎng)頁制作以及廣西網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,廣西網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到廣西省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!小編給大家分享一下關于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值。此處所說的對象應該特指復合類型的對象(如類、list等),對于字符串、整數(shù)等類型,變量的id是隨值的改變而改變的。
2、一個對象的id值在CPython解釋器里就代表它在內(nèi)存中的地址。(CPython解釋器:http://zh.wikipedia.org/wiki/CPython)
class Obj(): def __init__(self,arg): self.x=arg if __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判斷兩個對象是否相等時,依據(jù)就是這個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)存中的比較,而==是值的比較。
看完了這篇文章,相信你對關于python里id函數(shù)的簡介有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,感謝各位的閱讀!