如何访问不可变变量的原始值?

how is original value from immutable variable accessed?

不可变变量:一种变量,如果它被修改,它会存储它的原始版本。 问题:如何在 Python 中访问该变量的旧版本?或 Java?或支持此 "persistent data structure?" 的任何其他语言 还是我对不可变变量的定义有误?

我改变一个变量后,比方说,python:

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

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

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

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

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

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

此时,没有变量引用 "nice name" - 因此它不再可用。

str 类型是不可变的,因为 "nice name" 值本身无法更新。对字符串的任何操作都会创建一个新的内存块来存储修改后的字符串。在您的示例中, "nice name" 和 "bad name" 存储在不同的内存块中 - 您正在更新的所有内容都是参考到内存块。