Python 深浅拷贝


Python的深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,但本质的区别是拷贝的是对象的地址还是对象值的区别

可变对象与不可变对象的区别

  可变对象:一个对象在不改变其所指向的地址前提下,可以修改其所指向的地址中的值

  不可变对象:一个对象的值被改变了,那么原指向的地址就会发生变化,修改后的对象有新的地址

浅拷贝:拷贝可变元素(如,列表),当旧对象中的list发生对象,新对象的list也会发生变化,即新旧对象中的可变元素地址 是一样的

深拷贝:拷贝可变元素,深拷贝后,旧对象改变可变元素,新对象中的可变元素不会发生变化,即新旧对象没有 了关联