关注RPA请访问网站:
www.i-search.com.cn
学Python,用RPA,欢迎下载使用
https://www.i-search.com.cn/?from=csdn
在开发一个流程的过程中使用到了变量给变量赋值,出现了意想不到的结果,想起来之前学到的深拷贝与浅拷贝
写了一个简单的示例:
a = [1, 2, 3]
c = [4, 5, 6]
b = a
print(“############a:”, a)
print(“############b:”, b)
a.extend©
b.append(7)
print(“extend 处理后的 a:”, a)
print(“append 处理后的 b:”, b)
输出结果
############a: [1, 2, 3]
############b: [1, 2, 3]
extend 处理后的 a: [1, 2, 3, 4, 5, 6, 7]
append 处理后的 b: [1, 2, 3, 4, 5, 6, 7]
Process finished with exit code 0
这种情况出现的原因是使用了浅拷贝:即多个变量指向同一容器,
当原容器对象中可变对象中有元素发生变化,拷贝得到的对象也会变化。而使用深拷贝时,不会有这种问题。
如果我们把 b = a 换一下:
a = [1, 2, 3]
c &