美文网首页
可变对象的深拷贝与浅拷贝

可变对象的深拷贝与浅拷贝

作者: 无谓着 | 来源:发表于2021-03-26 14:59 被阅读0次

可变对象与不可变对象的种类

可变对象为list、dict、set,可变对象可以在其 id() 保持固定的情况下可改变其取值

不可变对象为number、string、tuple,具有固定值的对象。不可变对象包括数字、字符串和元组。这样的对象不能被改变。如果必须存储一个不同的值,则必须创建新的对象


image.png

可变对象的深拷贝与浅拷贝

首先深拷贝与浅拷贝针对可变对象的
copy模块

浅拷贝

1、浅拷贝会创建一个新的容器对象
2、对于对象中的元素,浅拷贝就只会使用原始元素的引用(内存地址)

浅拷贝的手段

1、使用切片操作[:] ——a[:]
2、直接赋值 ——a=b
3、copy模块的copy()方法 ——a.copy()

深拷贝

1.深拷贝和浅拷贝一样,都会创建一个新的容器对象(compound object)
2.和浅拷贝的不同点在于,深拷贝对于对象中的元素,深拷贝都会重新生成一个新的对象

深拷贝的手段

1、用copy模块的deepcopy()方法


image.png

相关文章

  • 深拷贝浅拷贝

    1.拷贝可变对象 深拷贝后浅拷贝可变对象,都是内存复制。 输出结果: 2.拷贝不可变对象 浅拷贝是指针拷贝,深拷贝...

  • 什么是浅拷贝与深拷贝

    什么是浅拷贝与深拷贝。浅拷贝就是不可变对象执行不可变拷贝(copy)深拷贝就是如果执行拷贝时 只要有可变的无论是可...

  • iOS中的copy和mutalbeCopy详解

    copy浅拷贝 对于不可变对象 copy是浅拷贝 copy深拷贝 对于可变对象 copy是深拷贝 mutableC...

  • Python高级第二天

    深拷贝和浅拷贝 一、可变对象与不可变对象 mutable : 可变对象,如List、Dict immutable ...

  • 学习总结小知识点

    深拷贝、浅拷贝问题 对于不可变对象而言,copy便是浅拷贝,而mutableCopy是深拷贝。对于可变对象而言,c...

  • Python面试基础整理

    Python可变类型与不可变类型不可变类型:数字、字符串、元组可变类型:列表、字典 浅拷贝和深拷贝浅拷贝:新旧对象...

  • copy拷贝

    可变对象的copy和mutableCopy都是深拷贝 不可变对象的copy是浅拷贝,mutableCopy是深拷贝...

  • Python浅拷贝与深拷贝

    Python浅拷贝与深拷贝 一、可变对象与不可变对象 见Python变量 二、copy模块 对象拷贝是指在内存中创...

  • iOS - 数组的深浅拷贝

    浅拷贝是指针拷贝,深拷贝是内容拷贝。copy拷贝出来的都是不可变对象;mutableCopy拷贝出来的都是可变对象...

  • 浅拷贝与深拷贝

    /*浅拷贝:拷贝地址*/ /*深拷贝:拷贝对象*/ 用Strong修饰不可变数组:浅拷贝 用Copy修饰不可变数组...

网友评论

      本文标题:可变对象的深拷贝与浅拷贝

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