国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

什么是python的id函數

瀏覽:78日期:2022-07-21 16:11:30

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)返回的是對象的“身份證號”,唯一且不變,但在不重合的生命周期里,可能會出現相同的id值。此處所說的對象應該特指復合類型的對象(如類、list等),對于字符串、整數等類型,變量的id是隨值的改變而改變的。

2、一個對象的id值在CPython解釋器里就代表它在內存中的地址。(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判斷兩個對象是否相等時,依據就是這個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與==的區別就是,is是內存中的比較,而==是值的比較。

知識點擴展:

Python id() 函數

描述

id() 函數返回對象的唯一標識符,標識符是一個整數。

CPython 中 id() 函數用于獲取對象的內存地址。

語法

id 語法:

id([object])

參數說明:

object -- 對象。

返回值

返回對象的內存地址。

實例

以下實例展示了 id 的使用方法:

>>>a = ’runoob’>>> id(a)4531887632>>> b = 1>>> id(b)140588731085608

到此這篇關于什么是python的id函數的文章就介紹到這了,更多相關python里id函數是什么內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 德庆县| 龙泉市| 沐川县| 浮山县| 逊克县| 无为县| 嘉黎县| 淳化县| 常州市| 同江市| 宜城市| 方山县| 伊金霍洛旗| 稷山县| 温泉县| 蒙自县| 枣庄市| 望谟县| 隆回县| 阳泉市| 凌云县| 乌恰县| 绥中县| 巴林右旗| 滕州市| 灵丘县| 高雄县| 隆德县| 潮安县| 新乡县| 潮安县| 游戏| 通城县| 昔阳县| 栾川县| 山阳县| 凤台县| 遂宁市| 苏州市| 沂南县| 连平县|