深、浅拷贝
这篇文章来给大家介绍一下python中的深浅拷贝一个对象,但是又不想对原对象产生副作用,那就不能通过赋值给新变量来解决,因为赋值不是拷贝一个对象。在python中专门提供了一种拷贝机制,基于原对象创建一个含有相同值的对模块提供。
首先,拷贝分为深拷贝和浅拷贝,现在我们详细说一下它们
浅拷贝是什么?
- 浅拷贝是对于一个对象的顶层拷贝通俗的说,就像拷贝了文件夹,没有拷贝文件夹里的内容。

如上图,a = b,这种方式赋值只是赋值的引用(内存地址),a和b都指向了同一个内存空间,所以它们的id相同(地址相同),这种就是浅拷贝
浅拷贝包括:
- 对列表切片拷贝 L[:]
- 调用对象的拷贝方法 list.copy()
- 调用 copy.copy()
import copy
copy.copy (浅拷贝,仅仅拷贝对象的第一层对象)
深拷贝是什么?
- 拷贝所有内容. 包括内部的所有,形成一个新的对象,虽然与之前的值和内容一模一样,但是它们完完全全的两个对象,用deepcopy()
深拷贝包括:
- 调用 copy.deepcopy()
import copy
copy.deepcopy (深拷贝,会递归拷贝)

浙公网安备 33010602011771号