在python中,不可变对象是共享的,创建可变对象永远是分配新地址
例如x=1,1就是一个不可变变量,内存里只有一个1。当我把值1传递给函数里的某一个变量的时候,我实际上也传递了地址,因为内存里只有一个1。
x=[1,2]
x[0]=3
这样修改对象,对象的内存地址是不变的。所以可以放心地将标记矩阵当成全局变量进行传递,随意修改,而不需要担心额外的空间消耗。
但如果像 x=x+[3] 的赋值语句,内存x的内存地址将发生变化 ,即创建可变对象永远是分配新地址。
在python中,不可变对象是共享的,创建可变对象永远是分配新地址
例如x=1,1就是一个不可变变量,内存里只有一个1。当我把值1传递给函数里的某一个变量的时候,我实际上也传递了地址,因为内存里只有一个1。
x=[1,2]
x[0]=3
这样修改对象,对象的内存地址是不变的。所以可以放心地将标记矩阵当成全局变量进行传递,随意修改,而不需要担心额外的空间消耗。
但如果像 x=x+[3] 的赋值语句,内存x的内存地址将发生变化 ,即创建可变对象永远是分配新地址。