深浅拷贝再回顾

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]]

'''
深浅拷贝总结:
浅拷贝:拷贝出来的新对象,他们只有对象下的第子对象是共享内存的,所以如果第二层的对象的
值改变的话,新对象的第二层对象也跟着改变。如果只是父对象改变,则新对象不改变


深拷贝:新拷贝出来的对象和原来的对象是两个完全不同的对象,子对象也是不同的内存空间,一个改变了
另外一个不会改变

'''
原文地址:https://www.cnblogs.com/one-tom/p/11389550.html