什么是深拷贝?
python语法:copy.deepcopy()
解释:深拷贝就是复制一个完全一模一样的出来,本体不会因为这个克隆体发生的改变而改变,简单的说就是复制之后他们就毫无关联了!!
什么是浅拷贝?
python语法:copy.copy()
解释:掐拷贝就是简单的复制一下外层,内层所以里面一层的id是指向同一个地址的(如果被拷贝的里面一层的值变了,拷贝的对象也会跟着改变,反之也一样)
举个栗子:a = [1,2,3[5,6]]
a里面的[5,6]列表就是内层的对象,浅拷贝完之后他们的id还是同一个。
总结
换一种说法:
深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不会影响当前对象
浅拷贝,原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象。
浅拷贝就是藕断丝连
深拷贝就是离婚了
通常复制的时候要用深拷贝,因为浅拷贝后,两个对象中不可变对象指向不同地址,相互不会改变,但是两个对象中的可变元素是指向相同的地址,一个变了,另一个会同时改变,会有影响(list是可变对象)。