怎么实现一个对象的深拷贝
时间: 2023-01-31 18:27:12 浏览: 122
在 Python 中,可以使用内置的 `copy` 模块来实现对象的深拷贝。
下面是一个示例:
```
import copy
original_object = [1, 2, [3, 4]]
copied_object = copy.deepcopy(original_object)
# 修改原始对象
original_object[2][0] = 9
print(original_object) # [1, 2, [9, 4]]
print(copied_object) # [1, 2, [3, 4]]
```
还有一种方法是使用 Python 内置的 `pickle` 库来实现对象的深拷贝。使用 `pickle` 库时,需要注意原始对象和拷贝对象都必须是可序列化的。
下面是一个示例:
```
import pickle
original_object = [1, 2, [3, 4]]
# 将原始对象序列化为二进制数据
data = pickle.dumps(original_object)
# 从二进制数据中反序列化出拷贝对象
copied_object = pickle.loads(data)
# 修改原始对象
original_object[2][0] = 9
print(original_object) # [1, 2, [9, 4]]
print(copied_object) # [1, 2, [3, 4]]
```
总之,可以使用 `copy.deepcopy` 函数或 `pickle` 库中的 `pickle.dumps` 和 `pickle.loads` 函数来实现对象的深拷贝。