国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中的id()函數指的什么

2020-01-04 16:36:30
字體:
來源:轉載
供稿:網友

Python官方文檔給出的解釋是

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=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)   #15760464 

令外,用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函數,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黑河市| 普定县| 慈利县| 清丰县| 九寨沟县| 凤山县| 昔阳县| 通化县| 阳西县| 象山县| 北流市| 庄浪县| 康乐县| 应用必备| 土默特右旗| 德清县| 余江县| 玉环县| 维西| 驻马店市| 桂平市| 五大连池市| 大同市| 奉节县| 盖州市| 西华县| 陕西省| 高清| 兰西县| 仙桃市| 湾仔区| 印江| 浑源县| 凤山县| 洮南市| 霍邱县| 岱山县| 拉萨市| 承德市| 邓州市| 茂名市|