浅复制
对于单独的一个对象(对象中的成员变量的基本数据),赋值一份新的额出来,跟深复制一样。
下图为浅复制在内存中的表现
list1 = [1,2,3]
list2 = list1.copy() # 浅复制
print(list1) # [1,2,3]
print(list2) # [1,2,3]
print(list1 is list2) # False
print(list1[0] is list2[0]) #True
深复制
当对象中的成员变量不是基本类型时
import copy
list1 = [[1,2],[3,4]]
list2 = copy.copy(list1) # 浅拷贝
list3 = copy.deepcopy(list1) # 深拷贝
print(list1[0] is list2[0]) # True
print(list1[0] is list3[0]) # False
深复制是将整个对象复制,在内存中的表现就是地址完全不一样
浅复制是只复制地址,在内存中的表现就是对象中的成员变量地址是一样的