python的赋值和赋址

来源:互联网 发布:linux访问数据页面 编辑:程序博客网 时间:2024/05/16 09:59

python的数字和字符串的值是不变的(元祖也是不可变的),所以当一个变量(数字或字符串)进行值改变的操作时,其实是新开辟了一个地址来存放这个新值。

例如:

>>>a=2

>>>b=a

>>>a=3

>>>b

2

当执行a=3时,其实是新开辟了一块内存空间来存放3,并且把索引a从2那边解除,指向了存放3的内存地址。所以

a的值是3,但是b还是2。因为b依旧指向2所在的内存空间。


再来看看其他非数字和字符串的操作,例如列表,

>>>a=[2]

>>>b=a

>>>a.append(3)

>>>b

[2,3]

当执行a.append时,因为列表的值是可以变化的,所以就在原来的存放a的内存地址改变了a的值,由于a,b

是指向同一地址空间的索引,所以当此内存地址所存储的值被改变时,打印b时,b的值也变化了。



0 0
原创粉丝点击