一尘不染

Python-id()函数的作用是什么?

python

我阅读了Python 2文档并注意到该id()功能:

返回对象的“身份”。这是一个整数(或长整数),在该对象的生存期内,此整数保证是唯一且恒定的。具有不重叠生存期的两个对象可能具有相同的id()值。

CPython实现细节:这是对象在内存中的地址。

因此,我通过使用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()在实践中何时使用


阅读 2050

收藏
2020-02-21

共1个答案

一尘不染

你的帖子问了几个问题:

  • 该函数返回的数字是多少?

它是“ 一个整数(或长整数),在此对象的生存期内,保证它是唯一且恒定的。 ” (Python标准库-内置函数)一个唯一的数字。仅此而已。可以将其视为Python对象的社会保险号或员工ID号。

  • 与C中的内存地址是否相同?

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

  • 如果是,为什么数字不立即随数据类型的大小增加(我假设它是整数)?

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

  • 我们什么时候真正使用id( )功能?

几乎没有。id()(或其等效项)在is运算符中使用。

2020-02-21