当我们创建一个变量时,在及其的内存中,系统会自动给该变量分配一块内存,用于存放变量值。这样说不好理解,直接用代码来说明:
x = 4
id(x) # 查看变量x指向的内存地址:30834096L
y = x # 将变量x重新赋给另一个新变量y
id(y) # 地址为30834096L
x = 2 # 对变量x重新赋值
print(x, y)
id(x) # 地址为30834144L
id(x) # 地址为30834096L
可以看出,一个变量在初次赋值是后获得一块内存空间来存放变量值,当y = x时,其实是一种内存地址的传递,y获得的是变量x的内存地址,所以当x改变时,y并不会发生变化。另外,x发生变化时,系统会重新分配另一块内存空间存放新的变量值。