深拷贝,浅拷贝

 

 1a = [11,22,33]#创造了一个实体[11,22,33],此时a指向这个实体,a可以
 2#叫做源对象
 3b = a    #b也指向实体[11,22,33],b就叫做拷贝对象
 4#!!!浅拷贝源对象与拷贝对象共用一份实体,仅仅时引用的变量的不同
 5id(a)#输出为2310978997768
 6id(b)#输出为2310978997768,浅拷贝的id号一样
 7
 8
 9
10import copy
11c = copy.deepcopy(a)
12id(c)#输出为2310989166984,与a 的id号不一样
13a.append(44)
14a  #输出为[11, 22, 33, 44]
15b  #[11, 22, 33, 44] 表明深拷贝时拷贝对象和源对象彼此独立
16c  #[11, 22, 33]
17#深拷贝时拷贝对象和源对象彼此独立,任何一个对象的改动对另一个不会造成影响

copy.deecopy()

1import copy
2c = [1,2,3,4]
3f = [5,6,7]
4t1 = [c,f]
5g = copy.deepcopy(t1)
6f.append(10)
7f  #输出为[5, 6, 7, 10]
8g[1]  #输出为[5, 6, 7]这二行可以看出当深拷贝一个对象时,若此对象里面还有
9                                     #引用时,都会依次进行深拷贝

copy.copy()

 1t1 = [c,f]
 2t2 = (c,f)
 3m1 = copy.copy(t1)
 4m2 = copy.copy(t2)
 5id(t1)  #输出为2783225450120
 6id(m1)  #输出为2783225170312
 7id(m2)  #输出为2783223573000
 8id(t2)  #输出为2783223573000
 9
10#因此可以看出当copy.copy的对象可变时会进行拷贝,若该对象里面还有引用时直接指向就行,而不再进行拷贝,
11#若拷贝的对象不可变时,直接指向该对象,而不再拷贝
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值