在 Python 的内存中保存变量的实际逻辑是什么

What is the actual logic of saving a variable in memory of Python

在这个例子中;

>>> b = 2
>>> c = b/2
>>> d = c*b
>>> id(b)
1820966944
>>> d
2.0
>>> b = 4
>>> d
2.0
>>> id(b)
1820966976
>>> d
2.0
>>> 

我们重新定义变量b后,d仍然是2。 id 是不同的,所以我们知道两个 b 是不同的,但是,如果 d 仍然是 2,这意味着旧的 b 仍然在内存中的某个地方。由于新的 b 等于 4,我们无法到达旧的 b。我们不能说旧的 b 已经消失,因为 d 仍然是 2。那么旧 b 发生了什么?我们怎样才能达到旧的呢?它仍然存在,因为 d 等于 2.

我认为您假设您为 d d=c*b 编写的等式是存储在内存中的内容,并且如果您更新 b,它会更新 d 中的值。实际上,d=c*b行一执行,方程就执行了,返回的value就是d存储在内存中的值。这就是为什么当你更新 b.

时它没有更新的原因