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)
打印结果