python - 如果 python 变量的 id 小于 -6,为什么它会发生变化

标签 python jupyter-notebook

<分区>

我刚刚在检查 id 时遇到了一个奇怪的行为的变量赋值。我运行了以下代码

a = -5
print(id(a))

得到的id如下

140710231913104

我得到相同的 id如果 a >= -5 多次执行 Jupyter 单元格然而,如果我分配并运行 a < -5 ,我得到不同的id每次执行 Jupyter 单元后。在下图中查找摘要

enter image description here

这种行为的原因可能是什么?

最佳答案

看看下面的例子:

>>> 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/

相关文章:

python - 通过 Flask API 将 Arduino 传感器值发布到本地 Sqlite 数据库

python - 为什么这个字符串不会转换为浮点型?

Jupyter Notebook 中的 Python fork 进程

python - 从 tkinter 获取输入,然后关闭窗口

python - 无反向匹配在/

python - 特定数据符合时间序列的标准是什么?

python - 无法读取上传到谷歌云存储桶的 csv 文件

python - HoloViews 超出了 IOPub 消息速率

python - 我可以打包 IPython Notebook、依赖项和其他模块吗?

python - 如何将 datetime.date.today() 转换为 UTC 时间?