美文网首页
赋值、浅拷贝、深拷贝

赋值、浅拷贝、深拷贝

作者: 轻语风 | 来源:发表于2020-07-28 09:45 被阅读0次
对比解析.png

一. 赋值:

在 Python 中,对象的赋值就是简单的对象引用,这点和 C++不同
赋值: 完全复制,内存地址一样,如果原来的改变,后面的也会跟着变

二. 浅拷贝(shallow copy):

浅拷贝会创建新对象,其内容非原对象本身的引用,而是原对象内第一层对象的引用。浅拷贝有三种形式:切片操作、工厂函数、copy 模块中的 copy 函数。
浅拷贝: 可以理解为只拷贝表面一层列表,里面的列表没拷贝,如果原来的里面的列表改变了,拷贝的会跟着变

三. 深拷贝(deep copy):

深拷贝只有一种形式,copy 模块中的 deepcopy()函数。深拷贝和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。因此,它的时间和空间开销要高。
深拷贝:可以理解为把原件的全部复制了一边,跟原本的没有一点关系,如果原件改了,拷贝的是不会变的

四. 拷贝的注意点:

1、对于非容器类型,如数字、字符,以及其他的“原子”类型,没有拷贝一说,产生的都是原对象的引用。
2、如果元组变量值包含原子类型对象,即使采用了深拷贝,也只能得到浅拷贝。

相关文章

  • 简介深浅拷贝

    深浅拷贝 python 直接赋值,浅拷贝和深拷贝 直接赋值 其实就是对象的引用 (可以理解成浅拷贝) 浅拷贝: 拷...

  • python的浅拷贝和深拷贝

    对于不可变类型,浅拷贝和深拷贝没有区别 对于不可变类型 赋值 浅拷贝 深拷贝

  • 深拷贝 浅拷贝

    深入认识深拷贝 浅拷贝 公共方法 // 深拷贝 浅拷贝 对于基本类型来说 对于赋值操作 就是 深拷贝 因为值...

  • Python中的引用赋值,深拷贝,浅拷贝

    摘要:Python,引用赋值,深拷贝,浅拷贝 总结一下Python中的变量的引用赋值,深拷贝和浅拷贝,先上结论 赋...

  • 深浅拷贝理解

    先看最简单的赋值 (a=b) 浅拷贝 补充说明浅拷贝 如图 深拷贝

  • 赋值 浅拷贝 深拷贝

    赋值、浅拷贝、深拷贝赋值就是完全引用原来的对象通俗的理解,浅就是外面,深就是里面。浅拷贝的意思就是只拷贝外面的一层...

  • JAVA设计模式:原型模式与拷贝

    深拷贝与浅拷贝 浅拷贝:对象A进行赋值操作得到对象B,这就是浅拷贝,修改对象A的属性会影响到B的属性 深拷贝:深拷...

  • js深拷贝浅拷贝

    目录 一.数据类型 二.浅拷贝与深拷贝 三.赋值和浅拷贝的区别 四.浅拷贝的实现方式 五.深拷贝的实现方式 一.数...

  • PHP之剑走偏锋的DeepCopy

    php的深拷贝和浅拷贝问题,普通变量对象的赋值 = 是深拷贝,& 是浅拷贝。 输出结果: 类对象的拷贝问题就得看下...

  • 4.2.5浅拷贝和深拷贝

    浅拷贝:简单的赋值拷贝操作深拷贝:在堆区重新申请空间,进行拷贝操作

网友评论

      本文标题:赋值、浅拷贝、深拷贝

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