美文网首页
深浅复制

深浅复制

作者: EnjoyWT | 来源:发表于2017-01-23 14:59 被阅读15次

Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。

  1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
  2. copy.deepcopy 深拷贝 拷贝对象及其子对象
    一个很好的例子:
import copy  
a = [1, 2, 3, 4, ['a', 'b']] #原始对象  
  
b = a #赋值,传对象的引用  
c = copy.copy(a) #对象拷贝,浅拷贝  
d = copy.deepcopy(a) #对象拷贝,深拷贝  
  
a.append(5) #修改对象a  
a[4].append('c') #修改对象a中的['a', 'b']数组对象  
  
print 'a = ', a  
print 'b = ', b  
print 'c = ', c  
print 'd = ', d  

输出结果:

a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] 
b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] 
c = [1, 2, 3, 4, ['a', 'b', 'c']] 
d = [1, 2, 3, 4, ['a', 'b']]

相关文章

  • 深浅复制

    深浅复制和属性为copy,strong值的变化问题 浅复制:只复制指向对象的指针,而不复制引用对象本身。对于浅复制...

  • 深浅复制

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。 copy.cop...

  • 深浅复制

    参考链接 iOS 集合的深复制与浅复制

  • 深浅复制

    为了理解这种做法,首先要知道,两种情况: 对非集合类对象的 copy 与 mutableCopy 操作; 对集合类...

  • iOS中的深浅复制

    iOS中的深浅复制

  • 深拷贝和浅拷贝

    深复制和浅复制 1、概述 对象拷贝有两种方式:浅复制和深复制。 浅复制:拷贝指针 深复制:拷贝整个对象 2、深浅复...

  • 深拷贝和浅拷贝

    深复制(deepcopy)和浅复制(shadow copy) 深浅复制的区别 在面向对象语言中,一般来说浅复制是指...

  • 关于深浅拷贝的那些事

    前言 所谓深浅拷贝,其实都是进行复制,主要区别在于复制出来的新对象和原来的对象时候会相互影响。深浅拷贝的区分:B ...

  • JS中的深浅复制

    什么是深浅复制? 深复制:把要复制的对象的所引用的全部对象都复制一遍。开辟新空间。 浅复制:仅仅复制对象的引用,而...

  • Java如何复制对象(深浅)

    假如说你想复制一个简单变量。很简单: 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte...

网友评论

      本文标题:深浅复制

      本文链接:https://www.haomeiwen.com/subject/zjkmmttx.html