深浅拷贝

copy浅拷贝,拷贝值和指针,对象的属性还是引用原来的

deepcopy拷贝一个对象,把对象里面的属性也做了拷贝,deepcopy之后完全是另一个对象

 

#encoding=utf-8

import copy

alist=[[1],[2],[3]]

blist=copy.copy(alist)  #浅拷贝(只受原对象的值影响,不受指针影响)

clist=copy.deepcopy(alist) #深拷贝(不受原对象影响,是一个新对象)

print '>>before'

print alist,id(alist)

print blist,id(blist)

print clist,id(clist)

 

alist[0][0]=0  #修改的是值,指针不变

alist[1]=None   #指针已改变

print '>>after

print alist,id(alist)   

print blist,id(blist)

print clist,id(clist)

打印结果

 

posted @ 2016-08-01 10:48  anne的夏天  阅读(132)  评论(0编辑  收藏  举报