在Python中,`copy`模块提供了两个函数用于对象的复制:`copy.copy()`和`copy.deepcopy()`。
1. `copy.copy()`:执行的是浅拷贝(shallow copy)。这意味着它创建了一个新对象,这个对象有着原始对象值的一份精确拷贝。然而,如果对象中包含可变对象(如列表或字典),则这些可变对象在浅拷贝中仍然是共享的,即对它们的修改会影响到原始对象和拷贝对象。
2. `copy.deepcopy()`:执行的是深拷贝(deep copy)。深拷贝不仅复制对象本身,还递归地复制对象中包含的所有子对象。因此,对深拷贝得到的对象中的任何子对象的修改都不会影响到原始对象或浅拷贝得到的对象。
举例来说,如果你有一个包含列表的列表,使用浅拷贝后,修改内层列表会影响到原始列表和拷贝列表;而使用深拷贝后,修改内层列表只会影响到深拷贝得到的列表,不会影响原始列表。
需要注意的是,赋值操作(如`b = a`)在Python中实际上是创建了一个指向同一个对象的引用,所以对`b`的修改也会反映到`a`上。
希望这能帮助你理解Python中`copy`模块的作用和区别