首页 > 其他分享 >浅拷贝和深拷贝的概念与值拷贝和指针拷贝(引用拷贝)有关 浅拷贝 “指针拷贝 深拷贝 值拷贝

浅拷贝和深拷贝的概念与值拷贝和指针拷贝(引用拷贝)有关 浅拷贝 “指针拷贝 深拷贝 值拷贝

时间:2024-10-11 19:00:48浏览次数:11  
标签:对象 复制 与值 拷贝 copy 指针

在Python中,浅拷贝和深拷贝的概念与值拷贝和指针拷贝(引用拷贝)有关,但它们并不完全相同。下面是它们之间的关系和区别:

  1. 浅拷贝(Shallow Copy):

    • 类似于“指针拷贝”或“引用拷贝”。
    • 浅拷贝创建了一个新的对象,但是它所含的容器对象(例如列表、字典、类的实例等)仍然指向原始对象中的容器对象。
    • 对于不可变类型(如整数、浮点数、字符串、元组),浅拷贝会复制其值。
    • 对于可变类型,浅拷贝只是复制了容器对象的引用,而不是容器对象本身。因此,如果修改了复制后的对象中的可变元素,原始对象也会受到影响。
  2. 深拷贝(Deep Copy):

    • 类似于“值拷贝”。
    • 深拷贝创建了一个新的对象,并且递归地复制了原始对象中所有的子对象。
    • 对于不可变类型和可变类型,深拷贝都会复制其值,确保新对象和原始对象完全独立,修改新对象不会影响原始对象。

在Python中,浅拷贝可以通过copy模块的copy()函数实现,而深拷贝可以通过copy模块的deepcopy()函数实现。

标签:对象,复制,与值,拷贝,copy,指针
From: https://www.cnblogs.com/gaoyuechen/p/18459075

相关文章

  • 程序设计基础I-实验8 指针(函数题)
    6-1sdut-C语言实验-n个数的排序Qiao当上了体育委员,现在老师让他去给班级里的人排队,Qiao刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果。函数接口定义:voidsort(int*p,intn);其中p和n都是用户传入的参数。p的值为传递过来的地址;......
  • Boost C++ 库 | 智能指针(共享指针、共享数组、弱指针、介入式指针、指针容器)入门
    点击上方"蓝字"关注我们01、共享指针>>>这是使用率最高的智能指针,但是C++标准的第一版中缺少这种指针。它已经作为技术报告1(TR1)的一部分被添加到标准里了。如果开发环境支持的话,可以使用 memory 中定义的 std::shared_ptr。在BoostC++库里,这个智能指针命名为......
  • 42 C 语言 typedef:为基本数据类型、数组、指针、结构体、共用体起别名
    目录1 typedef介绍2 为某个基本类型起别名2.1为int类型起别名Integer2.2为unsignedchar类型起别名Byte2.3为基本类型一次起多个别名3 为结构体、共用体起别名3.1为结构体起别名3.1.1分开定义结构体和别名3.1.2与结构体定义一起使用typedef3.1.3为......
  • 指针 + 数组 较为复杂凌乱的 【笔试题】
    2024-10-10-笔记-25作者(Author):郑龙浩/仟濹(CSDN账号名)【指针+数组】的各种题型(笔试题)来自于鹏哥的网课,我做一下笔记119.【C语言进阶】笔试题详解(4)_哔哩哔哩_bilibili①题#include<stdio.h>intmain(){inta[5]={1,2,3,4,5};......
  • 关于常量指针和指针常量
    关于常量指针和指针常量知乎上看到一篇关于这两个概念的理解,感觉挺通俗易懂的,在此记录一下。①constintp;②constint*p;③intconst*p;④int*constp;⑤constint*constp;⑥intconst*constp;第一种是常量整数,没什么好说的。后面五种是指针,有一个简便的......
  • 2024-10-10 js 深拷贝常用方法
    1、json序列化以及反序列化leta=JSON.parse(JSON.stringify(b))2、使用lodash库插件没有的话先安装:npmilodash使用方式:import{cloneDeep}from'lodash';leta=cloneDeep(b);ps:我当前使用的版本是@4为什么要使用深拷贝?因为我们在开发中会经常进行赋值......
  • 43 C 程序动态内存分配:内存区域划分、void 指针、内存分配相关函数(malloc、calloc、re
    目录1 C程序内存区域划分1.1代码区(CodeSection)1.2全局/静态区(Global/StaticSection)1.3栈区(StackSection)1.4 堆区(HeapSection)1.5动态内存分配2void指针(无类型指针)2.1void指针介绍2.2void指针的作用2.3void指针的特点2.4 void指针类......
  • 【C++】类和对象(3)(默认成员函数--拷贝构造&赋值重载)
    引言前文介绍了C++中默认成员函数中的构造函数和析构函数,相信已经对它们的功能与用法有了基本认识,本文接着介绍也很常见的拷贝构造函数和赋值重载函数,便于对C++进一步的学习。拷贝构造函数补充知识:深浅拷贝深拷贝和浅拷贝是C++中对象拷贝的两种不同方式。浅拷贝是指将......
  • 指针 重点干货2
    小伙伴们,如果没有看指针重点干货1的,可以去我博客里先看那篇,再看这篇哦~目录六.空间大小七.解引用访问字节八.void*指针九.const修饰指针十.野指针1.指针变量没有初始化2.指针越界访问3.避免返回局部变量的地址4.注意开辟的指针释放后要归为空指针十一.重难点分析2......
  • 递归深拷贝导致浏览器网络请求中看不到响应
    前言:在项目中发现一个奇怪的问题,一个请求在数据量少的时候非常快速,数据量多的时候非常慢,甚至导致浏览器崩溃,在浏览器的网络抓包中看到有返回状态时200,但是响应迟迟没有返回,并且可以看到等待服务器响应时间非常长。排查:一开始是定位在后端问题,因为查询类型为1的时候反应速度非常快......