【Python进阶】深度复制——deepcopy
目录
- 一、可深度复制的对象类型
- 1. 基本数据类型
- 2. 标准容器对象
- 列表(包含可复制元素)
- 字典(包含可复制值)
- 元组(包含可复制元素)
- 集合
- 3. 自定义类(满足条件)
- 二、不可深度复制的对象
- 1. 外部资源句柄
- 2. 线程/进程相关对象
- 3. 数据库连接
- 4. 模块对象
- 三、深度复制 vs 浅层复制
- 四、深度复制的工作原理
- 五、最佳实践
- 1. 优先使用浅层复制的情况
- 2. 必须使用深度复制的情况
- 3. 自定义类的深度复制优化
- 六、常见问题解决方案
- 1. 处理不可复制的对象
- 2. 避免循环引用问题
- 总结
在 Python 中,可深度复制(deep copy)的对象是指那些可以被完整递归复制,包括其内部所有嵌套对象的对象。深度复制会创建一个全新的对象副本,新对象与原始对象完全独立,修改其中一个不会影响另一个。
一、可深度复制的对象类型
1. 基本数据类型
这些对象本身就是不可变的,复制时会创建新实例:
import copy# 整数
a = 42
b = copy.deepcopy(a) # 创建新整数对象# 浮点数