Python 中的深浅拷贝

Python 中的对象之间赋值时,时按照引用传递,如果需要拷贝对象
,需要使用标准库中的copy模块
1.copy.copy浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象
2.copy.deepcopy深拷贝 拷贝对象及其子对象


示例:
#encoding=utf-8
import copy
a=[1,2,3,4,5,['a','b']]


b=a #赋值,传对象的引用
c=copy.copy(a)#对象拷贝,浅拷贝:跟原来数据还有关系,和原来的数据保存了相同的指向地址
d=copy.deepcopy(a)#修改拷贝,:深拷贝跟原来的数据没有任何关系了,保存了原来的内容并保存到了新的地址


a.append(6)
a[5].append('c')


print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)


输出结果:
D:\python-2018-06-29\exercise\exercise-6>python deepcopy.py
a= [1, 2, 3, 4, 5, ['a', 'b', 'c'], 6]
b= [1, 2, 3, 4, 5, ['a', 'b', 'c'], 6]
c= [1, 2, 3, 4, 5, ['a', 'b', 'c']]
d= [1, 2, 3, 4, 5, ['a', 'b']]





猜你喜欢

转载自blog.csdn.net/sinat_18722099/article/details/81042223