在 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.
时它没有更新的原因
在这个例子中;
>>> 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.