id()

id() 是 Python 的内置函数,用于获取对象的唯一标识符(内存地址),返回值为整数。该标识符在对象的生命周期内保持不变,不同对象可能具有相同的标识符(如小整数缓存池中的对象)

核心特性:

  1. 内存地址映射
    返回值对应对象在内存中的地址(CPython 实现中直接返回内存地址):

    x = 10
    print(id(x))  输出如 140736978035648
    
  2. 生命周期唯一性
    同一对象生命周期内标识符不变,对象销毁后其标识符可能被新对象复用:

    a = []
    addr1 = id(a)
    del a
    b = []
    addr2 = id(b)
    addr2 可能等于 addr1(内存复用)
    
  3. 小整数优化
    部分小整数(通常为 -5 到 256)会被缓存,相同值共享内存地址:

    id(100) == id(100)  True(缓存范围内)
    id(1000) == id(1000)  False(非缓存范围)
    

典型应用场景:

  • 对象身份验证
    直接比较 id(obj1) == id(obj2)obj1 is obj2 更底层(但通常优先使用 is 运算符)。

  • 内存地址转换
    结合 hex() 查看十六进制内存地址:

    print(hex(id(x)))  输出如 0x7f8a5c0004a0
    
  • 调试内存引用
    追踪对象是否被意外复制或复用。

⚠️ 注意:不同 Python 解释器实现(如 Jython/IronPython)中 id() 的返回值含义可能不同

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容