python 深拷贝与浅拷贝
python 深拷贝与浅拷贝
深拷贝与浅拷贝的本质区别在于拷贝出来的对象的地址和原对象是否一样,就是地址的复制还是值的复制。此时我们可以看到,在浅拷贝时,拷贝出来的新对象的地址和原对象是不一样的。但是新对象里面的可变元素(列表)的地址和原对象里的可变元素的地址是一样的,也就是对象里的可变元素并没有被拷贝到新地址里面,而是和原对象的可变元素指向同一个地址。
浅拷贝时,在原对象的嵌套的列表增加一个元素时,新对象也跟着增加了,这就是因为这个嵌套的列表是指向同一个地址的,这个地址上的值变了,在两个地方会同时改变。
而深拷贝时,不论是整型,还是嵌套的列表的地址和原来对象的地址都不一样了,所以,原对象无论怎么修改,深拷贝都不会跟着改变。