深浅拷贝再回顾
print("-----如果是改变对象的第一层-------------") import copy a1=[1,2,[3,4,5]] b1=a1.copy() c1=copy.deepcopy(a1) a1.append(6) print("a1>",a1) # [1,2,[3,4,5],6] print("b1>",b1) # [1,2,[3,4,5]] print("c1>",c1) # [1,2,[3,4,5]]
# print("-----如果是改变对象的第二层-------------") a2=[1,2,[3,4,5]] b2=a2.copy() c2=copy.deepcopy(a2) a2[2].append("ppp") print("a>",a2) # a2=[1,2,[3,4,5,"ppp"]] print("b>",b2) # b2=[1,2,[3,4,5,"ppp"]] 浅拷贝,共享子对象的内存, print("c>",c2) # c2=[1,2,[3,4,5]]
'''
深浅拷贝总结:
浅拷贝:拷贝出来的新对象,他们只有对象下的第子对象是共享内存的,所以如果第二层的对象的
值改变的话,新对象的第二层对象也跟着改变。如果只是父对象改变,则新对象不改变
深拷贝:新拷贝出来的对象和原来的对象是两个完全不同的对象,子对象也是不同的内存空间,一个改变了
另外一个不会改变
'''
普通人!