【发布时间】:2020-05-10 11:35:22
【问题描述】:
我正在尝试了解 Python 内存管理的工作原理。如果我有一个可变变量,请说一个列表:
x = ['x1', 'x2']
print(id(x))
然后我会得到一个特定的内存地址。
如果我现在修改 x 说x.append('x3'),内存地址和以前一样,因为列表是可变数据类型。但是,如果我将 x 更改为 x = x + ['x3'] 并打印地址,我会得到一个不同的地址。为什么会这样?我的意思是,x 变量仍然具有相同的名称,我所做的只是修改它的内容。为什么 Python 在这种情况下会更改变量的地址?
【问题讨论】:
-
因为它创建了一个新变量,它分配给名称
x。你没有“只是修改它的内容”。修改内容做x += ['x3']