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

发布于 2021-02-02 23:14:11

我阅读了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()在实践中何时使用

关注者
0
被浏览
115
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你的帖子问了几个问题:

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

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

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

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

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

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看