python - python 中不同变量的类似地址。为什么?
问题描述
在我的研究所里,有人告诉我,python 中的每个变量都有自己的内存地址,每个变量中的内存地址都是不同的。他们通过使用 id() 命令证明了这一点,他们向我们展示了
>>>a=10
>>>b=20
>>>id(a)
94349304104992
>>>id(b)
94349304105312
通过展示这个陈述,他们向我们证明了两个内存位置的不同之处。
然后我在我的linux终端上尝试了同样的事情,当我尝试时得到了一些奇怪的答案......
>>>id(999)
139978570234704
>>>id(10001)
139978570234704
>>>id(9999)
139978570234704
>>>id(100001)
139978570234704
>>>id(99999)
139978570234704
>>>id(1000001)
139978570234704
>>>id(999999)
139978570234704
>>>id(10000001)
139978570234704
在尝试了所有这些之后,我发现所有数字都指向同一个位置,我无法理解为什么只有这种数字才会发生这种情况
除此之外,当我在 Windows cmd 上尝试相同的操作时,它运行良好。每个值都分配到不同的位置
解决方案
请参阅文档:
id
(对象)返回对象的“身份”。这是一个整数,保证该对象在其生命周期内是唯一且恒定的。具有不重叠生命周期的两个对象可能具有相同的
id()
值。CPython 实现细节: 这是对象在内存中的地址。
推荐阅读
- aurelia - 在转发器中使用 @computedFrom 数组
- r - 具有灵活函数参数的复杂 if else 函数的代码改进
- c# - .NET Framework 依赖树
- aframe - 有没有办法在 3d 模型中的特定网格上执行动画
- apache-kafka - Kafka:手动分配的消费者由于“GroupAuthorizationException”而无法提交或关闭
- linux-kernel - Linux 内核安全注意事项
- python - 如何让 VSCode 的自动完成功能和 PyCharm 一样强大?
- angular - 如何防止primeng下拉事件?
- ios - 实时数据库未返回预期数据
- windows - 使用 wget 从 EarthData(GES 光盘)下载许多文件。出现错误 503:某些文件的服务暂时不可用