首页 > 其他分享 >深浅拷贝

深浅拷贝

时间:2024-04-02 14:33:39浏览次数:29  
标签:顶层 对象 深浅 可变 类型 拷贝 copy

浅拷贝

  • 使用方式

    import copy
    
    # 浅拷贝
    copy.copy()
    
  • 拷贝原则

    • 对可变类型对象进行浅拷贝, 只做顶层拷贝
    • 对不可变类型对象进行浅拷贝, 那么不拷贝

深拷贝

  • 使用方式

    import copy
    
    # 深拷贝
    copy.deepcopy()
    
  • 拷贝原则

    • 对可变类型对象进行深拷贝, 除了顶层拷贝,还会对该对象的子元素进行深拷贝
    • 对不可变类型对象进行深拷贝(递归思维,以递归出口为最终 是否执行拷贝操作的依据)
      • 如果该对象存在可变类型数据的子元素, 那么会顶层拷贝, 并且对其子元素进行深拷贝
      • 如果该对象不存在可变数据对象, 那么不拷贝

标签:顶层,对象,深浅,可变,类型,拷贝,copy
From: https://www.cnblogs.com/cs-songbai/p/18110522

相关文章

  • QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题
    在Python中,深拷贝(deepcopy)和浅拷贝(shallowcopy)是用于创建对象副本的两种不同方式。浅拷贝是创建一个新的对象,该对象与原始对象的内容相同(包括内部嵌套对象的引用),但是它们指向相同的内存地址。换句话说,浅拷贝创建了一个对象的表面副本,而不是递归复制所有嵌套对象。当原始对......
  • 前端面试手写题目|编写一个函数,实现对象深拷贝,递归引用,日期,正则symbol健。手写Object.
    快速,选择,希尔45,编写一个函数,实现对象深拷贝,并解决递归引用,日期,正则表达式,对象中含有symbol健等问题。functiondeepCopy(obj,cache=newWeakMap()){if(obj==null||typeofobj!=='object'){r......
  • 对于拷贝普通对象 深拷贝和浅拷贝是否一样
    对于拷贝普通对象(即不包含嵌套对象或数组的对象),深拷贝和浅拷贝在最终结果上可能是相同的。这是因为普通对象通常只包含基本数据类型(如数字、字符串、布尔值)的属性,这些基本数据类型在赋值时是直接复制的,而不是引用。在浅拷贝中,对象的属性值被复制到新对象中。由于这些属性值是基本......
  • Python的浅拷贝与深拷贝
    浅拷贝#第一种In[1]:x=[1,2,3]In[2]:y=x.copy()In[3]:x[1]=1In[4]:xOut[4]:[1,1,3]In[5]:yOut[5]:[1,2,3]#第二种In[6]:x=[1,2,3]In[7]:y=x[:]In[8]:x[1]=1In[9]:xOut[9]:[1,1,3]In[10]:yOut[10]:[1,2,3]......
  • //拷贝文件夹 //将file1文件夹中的数据拷贝到文件夹file2中
    //拷贝文件夹//将file1文件夹中的数据拷贝到文件夹file2中publicclassFileDemo1{publicstaticvoidmain(String[]args)throwsIOException{//拷贝文件夹//将file1文件夹中的数据拷贝到文件夹file2中Filefile1=newFile("D:\\file......
  • 零拷贝看这一篇就够了(详细图解)
    目录​编辑前言为什么要有DMA技术?传统的文件传输有多糟糕?如何优化文件传输的性能?如何实现零拷贝?mmapwritesendfile使用零拷贝技术的项目PageCache有什么作用?大文件传输用什么方式实现?总结前言磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存10倍......
  • Java对象拷贝之MapStruct使用
    gradle依赖implementationgroup:'org.mapstruct',name:'mapstruct-jdk8',version:'1.3.1.Final'annotationProcessor"org.mapstruct:mapstruct-processor:1.3.1.Final"mapper(前提是原始对象与目标对象属性一致,不一致的需要单独处理)@Mapperpublici......
  • 拷贝构造
    #include<iostream>usingnamespacestd;classMonster{public:Monster();Monster(char*name,inthp,floatspeed);~Monster();Monster(Monster&obj);Monster(Monster&obj1,intval);public:stringm_name;int......
  • 复制(拷贝)数组的方法
    1.Arrays类的copyOf()方法2.Arrays类的copyOfRange()方法3.System类的arraycopy()方法4.Object类的clone()方法(1)copyOf()方法是以指定的长度复制原数组,然后返回一个新数组,如果长度超过原数组,会以数组类型的默认值进行填充(2)copyOfRange()方法则将指定原数组的指定长度范......
  • 利用卷影拷贝服务攻击域控五大绝招
    在微软ActiveDirectory(活动目录)中,所有的数据都被保存在ntds.dit中,NTDS.DIT是一个二进制文件,它存在于域控制器中的%SystemRoot%\ntds\NTDS.DIT。ntds.dit包括但不限于Username、Hash、Group、GPP、OU等活动目录相关信息。它和SAM文件一样,是被Windows系统锁定的,我们来介绍一下如......