I read Python 2 文档 http://docs.python.org/2/library/functions.html#id并注意到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 中的内存地址同义吗?如果是这样,为什么整数不对应于数据类型的大小?
When is id()
在实践中使用?
您的帖子提出了几个问题:
函数返回的数字是多少?
It is "一个整数(或长整数),保证该对象在其生命周期内是唯一且恒定的。" (Python标准库-内置函数) https://docs.python.org/2/library/functions.html#id一个独特的号码。不多不少,也不少少。将其视为 Python 对象的社会保障号或员工 ID 号。
和C语言中的内存地址一样吗?
从概念上讲,是的,因为它们在其一生中都保证在各自的宇宙中是独一无二的。在Python的一种特定实现中,它实际上是相应C对象的内存地址。
如果是,为什么数字不会立即增加数据类型的大小(我假设它是 int)?
因为列表不是数组,列表元素是引用,而不是对象。
我们什么时候真正使用id( )
功能?
几乎没有。您可以通过比较两个引用的 id 来测试它们是否相同,但是is操作员 https://docs.python.org/2/reference/expressions.html#is一直是推荐的方法。id( )
仅在调试情况下才真正有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)