深拷贝与浅拷贝是指在复制一个对象时,拷贝出来的内容是否包含该对象内部的对象。
浅拷贝:拷贝出来的对象与原始对象共享同一内存地址,一个对象的改变会影响到另一个对象。
深拷贝:拷贝出来的对象与原始对象没有任何关系,它们占用了不同的内存空间,一个对象的改变不会影响到另一个对象。
在 Python 中,通过列表的复制方式来理解深拷贝与浅拷贝的概念,例如:
a = [1, 2, [3, 4]]
b = a.copy()
c = copy.deepcopy(a)
对于列表a,b = a.copy()是一个浅拷贝,而c = copy.deepcopy(a)是一个深拷贝。