我读了 the Python 2 docs 并注意到了 id() 函数:



所以,我通过使用 id() 和一个列表进行了实验:

>>> list = [1,2,3]
>>> id(list[0])
31186196
>>> id(list[1])
31907092 // increased by 896
>>> id(list[2])
31907080 // decreased by 12

函数返回的整数是什么?它是 C 中内存地址的同义词吗?如果是这样,为什么整数不对应于数据类型的大小?
id()什么时候在实践中使用?

最佳答案

您的帖子提出了几个问题:

它是“一个整数(或长整数),保证在该对象的生命周期内是唯一且恒定的。” (Python Standard Library - Built-in Functions) 唯一编号。没有更多,也没有更少。将其视为 Python 对象的社会保险号或员工 ID 号。

从概念上讲,是的,因为他们都保证在他们的一生中在他们的宇宙中都是独一无二的。在 Python 的一种特定实现中,它实际上是对应 C 对象的内存地址。

因为列表不是数组,列表元素是引用,而不是对象。

几乎没有。您可以通过比较它们的 id 来测试两个引用是否相同,但 is operator 一直是推荐的方法。 id( ) 仅在调试情况下才真正有用。

关于python - id() 函数是做什么用的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15667189/

10-12 21:58
查看更多