a = [2,3,5,6] b = a b.append('x') #试问,这个时候 a 本身,被影响了吗??? print(a)
结果是
[2, 3, 5, 6, ‘x’]
看来a被影响了,为什么呢?因为dict的传递,直接是引用地址。 同理如果你的函数中, 有参数是 dict或者list,那
函数内部如果改变了 参数dict 或list, 外部的dict或者list,将会被影响改变!
如何解决?
深拷贝深拷贝可以解决此处的问题:
a = [2,3,5,6] b = copy.deepcopy(a) b.append('x') print(a)
结果是
[2, 3, 5, 6]
基础还是差啊,这样的东西都忘得一干二净,看到的时候还很诧异,诶!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)