°

python的引用和值传递

PHP实战视频教程大全

在python中的引用赋值和值赋值和其他编程语言略有不同,但是也很容易理解

a = 1

b = a  把a的值赋给了b,这个时候b实际上是一个独立的变量,不受a的影响,修改a不会影响b,修改b也不会影响a

这个时候b的值等于1,这是典型的值的传递

但是在python中有一些稍微复杂的数据结构就不太一样了比如列表

list = [1,2,3,4]

new_list = list  我们是想把list的值赋值给new_list的,但是这个时候你赋值的并不是值,而是list这个列表在内存中的引用地址

也就是new_list和list实际上是同一个列表只是名称不一样,这时候如果你修改其中任何一个,另一个也会受到影响:

list = [0,2,3,4]

这时候你再打印new_list会发现,同样是:[0,2,3,4]

那么怎么实现列表的值传递而不是引用传递呢?非常简单

你只要: new_list = list[:] 加上这样一个选择器就可以了

再次测试你会发现他们是两个独立的数据,不会再相互影响

如果你对python感兴趣可以看看我们的python基础加进阶的视频教程:python+区块链一起玩

打赏
  喜欢