什么是python的id函数
python官方给出的id解释为
id(object) Returnthe“identity”ofanobject.Thisisaninteger(orlonginteger)whichisguaranteedtobe uniqueand constantforthisobjectduringitslifetime.Twoobjectswithnon-overlappinglifetimesmayhavethe same?id()?value. CPythonimplementationdetail:?Thisistheaddressoftheobjectinmemory.
由此可以看出:
1、id(object)返回的是对象的“身份证号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。此处所说的对象应该特指复合类型的对象(如类、list等),对于字符串、整数等类型,变量的id是随值的改变而改变的。
2、一个对象的id值在CPython解释器里就代表它在内存中的地址。(CPython解释器:http://zh.wikipedia.org/wiki/CPython)
classObj(): def__init__(self,arg): self.x=arg if__name__=='__main__': obj=Obj(1) printid(obj)#32754432 obj.x=2 printid(obj)#32754432 s="abc" printid(s)#140190448953184 s="bcd" printid(s)#32809848 x=1 printid(x)#15760488 x=2 printid(x)
令外,用is判断两个对象是否相等时,依据就是这个id值
classObj(): def__init__(self,arg): self.x=arg def__eq__(self,other): returnself.x==other.x if__name__=='__main__': obj1=Obj(1) obj2=Obj(1) printobj1isobj2#False printobj1==obj2#True lst1=[1] lst2=[1] printlst1islst2#False printlst1==lst2#True s1='abc' s2='abc' prints1iss2#True prints1==s2#True a=2 b=1+1 printaisb#True a=19998989890 b=19998989889+1 printaisb#False
is与==的区别就是,is是内存中的比较,而==是值的比较。
知识点扩展:
Pythonid()函数
描述
id()函数返回对象的唯一标识符,标识符是一个整数。
CPython中id()函数用于获取对象的内存地址。
语法
id语法:
id([object])
参数说明:
object--对象。
返回值
返回对象的内存地址。
实例
以下实例展示了id的使用方法:
>>>a='runoob' >>>id(a) 4531887632 >>>b=1 >>>id(b) 140588731085608
到此这篇关于什么是python的id函数的文章就介绍到这了,更多相关python里id函数是什么内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!