copy---复制对象
作用:提供一些函数,可以使用浅副本或深副本语义复制对象
1.浅副本
copy()创建的浅副本(shallow copy)是一个形容器,其中填充原对象内容的引用,建立list对象的一个浅副本时,会构造一个新的list.并将原对象的元素追加到这个list。
1.深副本
deepcopy()创建的深副本是一个新容器,其中填充原对象内容的副本。要建立一个list的副本,会构造一个新的list,复制原列表的元素,然后将这些副本追加到新列表。
3.定制复制行为
可以使用特殊方法__copy__()和__deepcopy__()来控制如何建立副本。
调用__copy__()而不提供任何参数,这会返回对象的一个浅副本。
调用__deepcopy__(),并提供一个呗望指点,这会返回对象的一个生副本。所有需要深复制的成员属性都要连同诶网字典传递到copy.deepcopy()来控制递归。
4.深副本中的递归
为了避免复制递归数据结构可能带来的问题,deepcopy()使用了一个字典来跟中已经复制的对象。将这个字典传入__deepcopy__()方法,从而在该方法中也可以进行检查。
King@_@