介绍
小编给大家分享一下关于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函数的简介有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!