You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中实例打印的地址值与id(instance)返回值的区别是什么?

两个值的区别与本质

这两个数值本质对应同一个CPython环境下的对象真实内存地址,仅存在进制表示的差异:

  • 0x100651460是十六进制格式的地址表示,是直接打印自定义类实例时,默认__repr__方法输出的地址格式
  • 4301591648是同一地址的十进制格式表示,是id()函数的返回值格式

你可以直接通过代码验证二者的等价性:

# 把id返回的十进制值转十六进制,和打印对象得到的地址完全一致
print(hex(id(t))) # 输出为 0x100651460

补充说明

在CPython(最常用的Python官方实现)中,id()函数的返回值就是对象在内存中的真实地址的十进制整数形式,而打印对象时展示的十六进制地址,只是把id()的返回值做了进制转换后输出的结果,二者没有本质区别,都是真实的对象地址。
如果是其他Python实现(比如PyPy、Jython),id()的返回规则不一定和内存地址绑定,这一结论不适用。

内容的提问来源于stack exchange,提问作者amayoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:24:06