<分区>
我刚刚在检查 id
时遇到了一个奇怪的行为的变量赋值。我运行了以下代码
a = -5
print(id(a))
得到的id如下
140710231913104
我得到相同的 id
如果 a >= -5
多次执行 Jupyter 单元格然而,如果我分配并运行 a < -5
,我得到不同的id
每次执行 Jupyter 单元后。在下图中查找摘要
这种行为的原因可能是什么?
<分区>
我刚刚在检查 id
时遇到了一个奇怪的行为的变量赋值。我运行了以下代码
a = -5
print(id(a))
得到的id如下
140710231913104
我得到相同的 id
如果 a >= -5
多次执行 Jupyter 单元格然而,如果我分配并运行 a < -5
,我得到不同的id
每次执行 Jupyter 单元后。在下图中查找摘要
这种行为的原因可能是什么?
最佳答案
看看下面的例子:
>>> a=256
>>> b=256
>>> print(id(a),id(b))
(31765012, 31765012)
>>>
>>> c=257
>>> d=257
>>> print(id(c),id(d))
(44492764, 44471284)
>>>
这将帮助您理解整数的意外行为。每当您在 -5 到 256 范围内创建 Int 时,您实际上只是取回对现有对象的引用。这在 Python 中称为整数缓存。
关于python - 如果 python 变量的 id 小于 -6,为什么它会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075341/