最新消息:

python下对象的深拷贝与浅拷贝

python admin 3022浏览 0评论

关于深拷贝与浅拷贝

import copy

li = [0, 1, 2, 3, 4, 5, [7, 8, 9] ]
li1 = li[:]    #切片拷贝
li2 = copy.copy(li)    #浅拷贝
li3 = copy.deepcopy(li)    #深拷贝

首先打印一下列表中第一个元素的ID

print id(li[6]), id(li1[6]), id(li2[6]), id(li3[6])

结果如下

3073154508  3073154508  3073154508  3073175756

可以看出只有li3[6]的id不同,也就是对里面的listjinxingle一次拷贝,而并非只拷贝了list的引用
同时也可以看出 所谓的 切片拷贝 也是浅拷贝

深拷贝会递归的拷贝对象中的属性和内容

转载请注明:爱开源 » python下对象的深拷贝与浅拷贝

您必须 登录 才能发表评论!