按理说copy是浅拷贝,只是复制了指针引用, 而深拷贝会重新创建一个新对象,然后复制对象数据内容。
但是下面的代码证明我上面的理解是错误的:
import copy a = [8,9] b = copy.copy(a) c= a[:]print "before\t",a,b,c b[1] = 8print "changed\t",a,b,c
上面将输出:
before [8, 9] [8, 9] [8, 9] changed [8, 9] [8, 8] [8, 9]
也就是说修改b中的值,不会影响到a和c
如果把copy换成deepcopy结果完全一致,为什么呢?
慕桂英3389331
鸿蒙传说
隔江千里