浅拷贝:
会创建新的对象,拷贝第一层的数据,嵌套层会指向原来的内存地址
如上,对a的嵌套层进行修改,会同步修改浅拷贝的b中嵌套层的数据,这是由于浅拷贝只拷贝了第一层的数据。
深拷贝:外层的对象和内部的元素都拷贝了一遍
如上,对a的嵌套层进行修改,不会同步修改深拷贝的b中嵌套层的数据,这是由于深拷贝外层的对象和内部的元素都拷贝了一遍,可以理解为深拷贝创建了一个独立的新对象,无论原来的如何变化,深拷贝的值不受影响。
代码实现中,引入 copy
模块,用copy.
copy() 函数进行浅拷贝,用 copy.deepcopy()
函数进行深拷贝。