python内置函数id的返回值类型是,Python里的id
函数返回的时候有一个标识,就像我们发包裹的时候,我们都有一个单号,这样大家就可以随时跟踪它的进度。我们今天要讲的内置函数id()也可以看做是用来标识的。那么我们再进一步想,id()返回的最后一个地址在哪里?在下面的返回对象地址问题上,边肖将带领大家在代码中找到答案。
1.用于返回对象的身份(identity)。其实,这里所谓的身份,就是该对象的内存地址。
a=1
打印(id(a))
Print(hex(id(a)))在我的电脑上,他们返回的是:
112466960xab9c68 分别是内存地址的十进制和十六进制表示。
在Python中,整数和短字符被Python缓存以供重用。当我们创建多个等于1的引用时,我们实际上使所有这些引用指向同一个对象。
a=1
b=1
打印(id(a))
Print(id(b))上述程序返回
11246696
1246696可以看出,A和B实际上是指向同一个对象的两个引用。
2.Python的内置函数id()返回的其实是变量的内存地址
c=[]
#这里定义了一个新的变量[],并给它分配了内存空间。比如标题是82482056,C指向内存空间82482056作为名称。
d=[]
#这里定义了一个新的变量[],并给它分配了内存空间。比如标题是82452296,D指向内存空间82452296作为名称。
e=d
#注意,这里没有定义新的变量,也没有分配新的内存空间。只有E作为名字指向和D一样的目标,也就是内存空间82452296。
打印(id([]))
#注意这里定义了一个新变量[],内存空间分配给它,比如标题82481544。但是这句话执行之后,就没有指向内存空间82481544的名字了,也就是说,这个变量就再也取不到了(Python没有C语言的内存指针机制)。此时根据Python的垃圾收集机制,这个变量会被销毁,释放内存空间82481544。
打印(id([]))
#这里定义了一个新变量[],内存空间分配给它。根据内存空间分配算法,一般是82481544。这个内存空间分配算法我就不展开了。这句话执行后,同样没有名字指向内存空间82481544。这个变量将被销毁,内存空间3将被print(id(c))释放。
打印(id(d))
打印(id(e))
#这三个句子分别输出它们指向的内存地址。通过本文的学习,我们可以明确,id()返回的是python中一个变量的内存地址,这也是我们今天探索的结果,所以本文的学习到这里就结束了。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。