python 赋值、浅拷贝、深拷贝的区别

1.赋值仅仅是给对象添加一个引用
>>> a = [1,2,[3,4]]
>>> b = a
>>> b[2].append(5)
>>> print a
[1, 2, [3, 4, 5]]
>>> print b
[1, 2, [3, 4, 5]]
>>> print id(a)
140399595303712
>>> print id(b)      #a,b指向同一个对象
140399595303712   

  1. 浅 拷贝copy.copy() 只拷贝“父对象”不拷贝其子对象
浅拷贝对不可变类型和可变类型的copy不同

3.深拷贝copy.deepcopy() 会递归拷贝其子对象

猜你喜欢

转载自blog.csdn.net/xin_yun_jian/article/details/80791946