关于深拷贝与浅拷贝
对于元组等不可变数据类型,不论是深拷贝与浅拷贝,其地址不变,只是引用原地址的内容。
对于列表等可变数据类型,浅拷贝只拷贝父对象,不会拷贝对象中的子对象。深拷贝会拷贝对象中的子对象。而且不论是深拷贝还是浅拷贝,都会建立新的地址存储。
In [74]: b = [33,44]
In [75]: c = (a,b)
In [76]: c
Out[76]: ([11, 22], [33, 44])
In [77]: d = copy.copy(c)
In [78]: id(c)
Out[78]: 140233732322440
In [79]: id(d)
Out[79]: 140233732322440
In [80]: e = copy.deepcopy(c)
In [81]: id(e)
Out[81]: 140233713145672
In [82]: id(c)
Out[82]: 140233732322440
In [83]: id(c[1])
Out[83]: 140233713122504
In [84]: id(e[1])
Out[84]: 140233731173640
In [85]: id(d[1])
Out[85]: 140233713122504
In [86]: a.append(55)
In [87]: c
Out[87]: ([11, 22, 55], [33, 44])
In [88]: e
Out[88]: ([11, 22], [33, 44])