Python 的内置函数 id() 用于返回对象的唯一标识符(identity)。这个标识符是一个整数,在对象的生命周期内保证唯一且不变。在 CPython 实现中,id() 返回的实际上是对象的内存地址。
详细说明
-
功能特性:
- 返回一个对象的唯一标识符(整数)
- 该标识符在对象生命周期内保持不变
- 不同对象在同一时间可能有相同的 id(前提是它们的生命周期不重叠)
-
CPython 实现细节:
- 在 CPython 中,
id()返回的是对象在内存中的地址 - 这个特性是 CPython 特有的,其他 Python 实现(如 Jython 或 IronPython)可能有不同的实现方式
- 在 CPython 中,
-
使用示例:
x = 42 print(id(x)) # 输出 x 的唯一标识符 y = "hello" print(id(y)) # 输出 y 的唯一标识符 # 小整数池现象 a = 256 b = 256 print(id(a) == id(b)) # 可能输出 True(由于小整数池优化) c = 257 d = 257 print(id(c) == id(d)) # 可能输出 False -
注意事项:
-
应用场景:
- 调试时查看对象身份
- 实现自定义的哈希函数
- 检查对象是否是同一个实例(结合
is操作符)
-
与
is操作符的关系:x is y # 等价于 id(x) == id(y) -
性能考虑:
id()是一个轻量级操作- 不会对对象内容进行任何计算或复制
注意:虽然 id() 在 CPython 中返回内存地址,但程序不应该依赖这个实现细节,因为其他 Python 实现可能采用不同的方式生成标识符。