深入理解python中函数传递参数是值传递还是引用传递

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chduan_10/article/details/81784305

在python中,不可变对象是共享的,创建可变对象永远是分配新地址

例如x=1,1就是一个不可变变量,内存里只有一个1。当我把值1传递给函数里的某一个变量的时候,我实际上也传递了地址,因为内存里只有一个1。

x=[1,2]

x[0]=3

这样修改对象,对象的内存地址是不变的。所以可以放心地将标记矩阵当成全局变量进行传递,随意修改,而不需要担心额外的空间消耗。

但如果像 x=x+[3] 的赋值语句,内存x的内存地址将发生变化 ,即创建可变对象永远是分配新地址。


 

猜你喜欢

转载自blog.csdn.net/chduan_10/article/details/81784305