万物之中, 希望至美.

Python中的浅拷贝与深拷贝

在面试过程中,经常会被问浅拷贝与深拷贝的区别。所以,在这里记录一下自己的理解,以便以后好复习。 浅拷贝(shallow copy) 所谓“浅拷贝”,是指在复制一个对象时,构建一个新的对象,并将原对象中发现的引用插入到该对象中. 浅拷贝的实现方式常见的有:工厂函数、切片操作、copy模块中的copy函数等 实现如下: >>> a = [1, 2, [3, 4]] >>> b = a[:] >>> id(a) 4505384008 >>> id(b) 4504586056 >>> [id(x) for x in a] [4470102640, 4470102672, 4505384072] >>> [id(x) for x in b] [4470102640, 4470102672, 4505384072] >>> a[2] += [5] >>> a [1, 2, [3, 4, 5]] >>>......