首页 > 其他 > 详细

深浅拷贝

时间:2019-02-21 00:13:06      阅读:191      评论:0      收藏:0      [点我收藏+]

一、示例

import copy

a = [11, 22]
b = a
print(id(a))  # 17812744
print(id(b))  # 17812744
c = copy.deepcopy(a)
print(id(a))  # 17812744
print(id(c))  # 17810952
print(a)  # [11, 22]
print(c)  # [11, 22]
a.append(33)
print(a)  # [11, 22, 33]
print(c)  # [11, 22]

可以看到a、b内存地址是一样,可如下图表示;而c是完完全全拷贝了一份a指向的内容,这就是深拷贝。

技术分享图片

二、深浅拷贝

浅拷贝:copy.copy()

import copy

a = [11, 22]
b = [33, 44]
c = [a, b]
d = copy.copy(c)
print(id(c))  # 17811464
print(id(d))  # 17405960
a.append(55)
print(c)  # [[11, 22, 55], [33, 44]]
print(d)  # [[11, 22, 55], [33, 44]]

把c里的东西取出来,然后d指向它,大致如下图所示。

技术分享图片

深拷贝:copy.deepcopy()

import copy

a = [11, 22]
b = [33, 44]
c = [a, b]
d = copy.deepcopy(c)
print(id(c))  # 17942536
print(id(d))  # 17943112
a.append(55)
print(c)  # [[11, 22, 55], [33, 44]]
print(d)  # [[11, 22], [33, 44]]

深拷贝:我已经完完全全拷贝过来了,你改你的东西,不关我事。

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

深浅拷贝

原文:https://www.cnblogs.com/believepd/p/10410019.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!