关于深拷贝和浅拷贝##
浅拷贝:通俗的来说,只拷贝引用,不拷贝内容。
深一层理解:浅拷贝是对于一个对象的顶层拷贝,相当于只拷贝了最浅的一层或者第一层。
深拷贝:深拷贝会完全复制原变量的所有数据(递归性质的拷贝),在内存中生成一套完全一样的内容,我们对这两个变量中的一个进行任意修改都不会影响另一个变量。
浅拷贝注意点:对于可变类型,进行浅拷贝
对于不可变类型,仅仅是指向,不会拷贝。
import copy
a = [11,22]
b = [33,44]
c = [a,b]
d = copy.copy(c)
print(id(c))
print(id(d))
print(id(c[0])
print(id(d[0]))
525335325384
525335323080
525335232328
525335232328
此时,我们发现c和d的引用地址不同,而其中每个元素地址相同,说明浅拷贝只拷贝了第一层, 即最顶层
深拷贝的拷贝结果是内容相同,内存地址不相同,我们可以理解为拷贝结束后生成两个完全相同的内容;其中改变任意的值时,对另外的内容并不产生影响。