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

首頁 > 編程 > Python > 正文

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

2020-02-16 10:24:28
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铜川市| 盘锦市| 平凉市| 漯河市| 五华县| 淮滨县| 新沂市| 林周县| 蒙自县| 团风县| 石门县| 易门县| 大田县| 大邑县| 景洪市| 晋城| 高淳县| 华容县| 疏勒县| 云安县| 巴彦县| 景洪市| 邯郸县| 文山县| 津南区| 柘城县| 信宜市| 临汾市| 定边县| 扎囊县| 新田县| 城口县| 富锦市| 松桃| 洮南市| 盐城市| 当雄县| 手机| 南靖县| 维西| 鄄城县|