-2

不可变变量:一种变量,如果被修改则存储它的原始版本。问题:如何在 Python 中访问该变量的旧版本?还是在 Java 中?或任何其他支持这种“持久数据结构”的语言?还是我对不可变变量的定义错了?

在我更改变量后,假设python

name = "nice name"
name = "bad name"

现在,我如何检索 的旧值var name

注意:这个问题与它被标记为重复的问题不同,因为这个问题是关于变量的内存位置,另一个问题是关于变量的范围

4

1 回答 1

0

在您的示例中,name是指向一个值的引用。

在您的第一行中,name指向不可变字符串“nice name”。

然后在您的第二行中,您更新name以指向不同的不可变字符串“bad name”。

此时,没有变量引用“好名字”——所以它不再可用。

str类型是不可变的,因为“好名”值本身无法更新。对字符串的任何操作都会创建一个新的内存块来存储修改后的字符串。在您的示例中,“好名”和“坏名”存储在不同的内存块中 - 您要更新的只是对内存块。

于 2015-01-25T11:47:33.787 回答