关于python里id函数的简介

  介绍

小编给大家分享一下关于python里id函数的简介,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

python官方给出的id解释为

id(对象)      Return ,“身份”,of  an 对象只却;能够is  an  integer (或是long 整数),which  is  guaranteed 用be    unique 以及   constant  for 却;能够object  during  its 一生只Two  objects  with  non-overlapping  lifetimes  may  have 从而   相同的id () ?。      CPython  implementation 细节:?却;能够is 从而address  of 从而object 拷贝内存。

由此可以看出:

1, id(对象)返回的是对象的“身份证号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。此处所说的对象应该特指复合类型的对象(如类、列表等),对于字符串,整数等类型,变量的id是随值的改变而改变的。

2,一个对象的id值在CPython的解释器里就代表它在内存中的地址。(CPython的解释器:http://zh.wikipedia.org/wiki/CPython)

class  Obj ():   ,,,def  __init__(自我,arg):   ,,,,,,,self.x=参数   if  __name__ ==, & # 39; __main__ # 39;:   ,,,,   ,,,obj=obj (1)   ,,,print  id (obj),,,,,,, # 32754432   ,,obj.x=2   ,,,print  id (obj),,,,,,, # 32754432   ,,,,   ,,,s=癮bc"   ,,,print  id (s),,,,,,,,, # 140190448953184   ,,,s=癰cd"   ,,,print  id (s),,,,,,,,, # 32809848   ,,,,   ,,x=1   ,,,print  id (x),,,,,,,,, # 15760488   ,,x=2   ,,,print  id (x)

令外,用是判断两个对象是否相等时,依据就是这个id值

class  Obj ():   ,,,def  __init__(自我,arg):   ,,,,,,,self.x=参数   ,,,def  __eq__(自我,其他):   ,,,,,,,return  self.x==other.x   ,,,,   if  __name__ ==, & # 39; __main__ # 39;:   ,,   ,,,其中obj1=Obj (1)   ,,,methoda=Obj (1)   ,,,print  obj1  is  obj2  #假   ,,,print  obj1 ==, obj2  #真正的   ,,,,   ,,,lst1=[1]   ,,,lst2=[1]   ,,,print  lst1  is  lst2  #假   ,,,print  lst1 ==, lst2  #真正的   ,,,,   ,,,s1=& # 39; abc # 39;   ,,,s2=& # 39; abc # 39;   ,,,print  s1  is  s2 ,,,,, #真正的   ,,,print  s1 ==, s2 ,,,,, #真正的   ,,,,   ,,,=2   ,,b=1 + 1   ,,,print  a  is  b ,,,,,,, #真正的   ,,,,   ,,,a =19998989890   ,,,b =19998989889, + 1   ,,,print  a  is  b ,,,,,,, #假

是与==的区别就是,是是内存中的比较,而==是值的比较。

看完了这篇文章,相信你对关于python里id函数的简介有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

关于python里id函数的简介