猿问

什么时候在python中将对象加载到内存中?

以python中的以下示例为例:


$ python

>>> id(True)

140736139690832

>>> id(1)

140317292515368

>>> ^D


$ python

>>> id(True)

140736139690832

>>> id(1)

140585619968040

True在这两种情况下都相同id,但数字1不一样。为什么会这样?它是否在初始化python之前将某些类型分配给内存地址,或者为什么不同项目之间的内存地址有时相同有时不同?


从文档:


CPython 实现细节:对于 CPython,id(x) 是存储 x 的内存地址。


qq_笑_17
浏览 143回答 1
1回答

BIG阳

CPython 为小数字创建可重用存储,但大概它在循环中执行此操作,并将它们存储到堆分配的常量数组中。另一方面,True更像False是“静态全局变量”,在 Python 可执行映像中具有固定地址。所以这里没有什么真正令人惊讶的。你也不应该依赖这些细节id——在现实世界的 Python 程序中很少使用。
随时随地看视频慕课网APP

相关分类

Python
我要回答