id()函数用于什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

返回对象的“标识”。这是一个整数(或长整数),它保证该对象在其生存期内是唯一的和常量的。两个寿命不重叠的对象可能具有相同的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()在实践中使用?

提问于
用户回答回答于

你的帖子问了几个问题:

函数返回的数字是多少?

是“一个整数(或长整数),它保证该对象在其生存期内是唯一的和常量的。

C中的内存地址也是一样的吗?

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

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

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

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

几乎没有。id()(或其等效)用于is接线员。

用户回答回答于

这个例子可能会帮助你更好地理解这个概念。

foo = 1
bar = foo
baz = bar
fii = 1

print id(foo)
print id(bar)
print id(baz)
print id(fii)

> 1532352
> 1532352
> 1532352
> 1532352

所有这些都指向内存中相同的位置,这就是它们的值是相同的原因。在这个例子中,1只存储一次,其他指向1将引用那个内存位置。

所属标签

可能回答问题的人

  • 不吃貓的鱼oo

    5 粉丝466 提问6 回答
  • Richel

    8 粉丝0 提问4 回答
  • 发条丶魔灵1

    6 粉丝525 提问3 回答
  • 人生的旅途

    10 粉丝484 提问3 回答

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励