目录
以列表为例
首先明白:
1.列表实例存储对象序列
2.列表是一个参考结构,它在技术上存储其元素的引用序列。
现在有一个列表warmtones,里面存放颜色值。
1.别名
执行命令:
palette = warmtones
这句话为warmtones这个列表创建了一个别名palette。并没有创建新的列表。
这叫做别名。
2.浅拷贝
执行命令:
palette = list(warmtones)
这句话,显示调用列表构造函数,将warmtones作为参数,会创建一个新的列表palette。这叫做浅拷贝。
但是,如果更改了palette,相应的,warmtones也会被改变,因为他们指向同一片地址。
3.深拷贝
执行命令:
palette = copy.deepcopy(warmtones)
注:其中,copy是python的一个模块,它能产生任意对象的浅拷贝和深拷贝。copy提供了两个函数:copy()和deepcopy()。copy()创建对象的浅拷贝,deepcopy()创建对象的深拷贝。
这句话中,palette是warmstones的深拷贝。在深拷贝中,新副本引用的对象也是从原始版本中复制过来的。