浅拷贝和深拷贝
总结:浅拷贝对象数据共享,深拷贝是一个完全独立的对象,因此对象数据不共享。
浅拷贝(Shallow Copy)
浅拷贝是指创建一个新的对象,但是该新对象只是原始对象的一个副本。具体而言,浅拷贝会创建一个新的对象,并将原始对象的引用复制到新对象中。因此,新对象和原始对象将共享相同的数据。如果原始对象中的数据被修改,则新对象中的数据也将被修改。在Python中,可以使用copy函数来实现浅拷贝。例如:
import copy
a = [1,2,3,4]
b = a #或者 b = a.copy(), = 赋值默认是浅拷贝。
b[0] = 0
print(a)
输出[0,2,3,4].
修改a的值b也会改,修改b的值a也会改。
深拷贝(Deep Copy)
深拷贝是指创建一个新的对象,并将原始对象中的数据复制到新对象中。深拷贝会创建一个完全独立的对象,因此新对象和原始对象不共享数据。在Python中,可以使用copy模块中的deepcopy函数来实现深拷贝。例如:
import copy
a = [1, 2, 3, 4]
b = copy.deepcopy(a)
a[0] = 0
print('a:',a)
print('b:',b)
输出:
a: [0, 2, 3, 4]
b: [1, 2, 3, 4]
可见修改a,b并不会相互影响。
注意:!!Python中 = 默认是浅拷贝