问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python中的赋值,浅拷贝和深拷贝的区别

发布网友 发布时间:2022-03-24 02:08

我来回答

2个回答

懂视网 时间:2022-03-24 06:29

python深拷贝和浅拷贝的区别是:

  

  1、直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变。

  

  2、copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变。

  

  3、深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变。

  

  

热心网友 时间:2022-03-24 03:37


浅拷贝会出现什么问题呢?
假如有一个成员变量的指针,char
*m_data;
其一,浅拷贝只是拷贝了指针,使得两个指针指向同一个地址,这样在对象块结束,调用函数析构的时,会造成同一份资源析构2次,即delete同一块内存2次,造成程序崩溃。
其二,浅拷贝使得obj.m_data和obj1.m_data指向同一块内存,任何一方的变动都会影响到另一方。
其三,在释放内存的时候,会造成obj1.m_data原有的内存没有被释放(这句话,刚开始我不太理解,如果没有走自定义的拷贝构造函数,申请内存空间,A
obj1(obj);也不走默认构造函数,走的是默认的拷贝构造函数,何来分配空间直说,更不会造成obj1.m_data原有的内存没有被释放,这里刚开始我一直有疑问),造成内存泄露。
事实是这样的,当delete
obj.m_data,
obj.m_data内存被释放后,由于之前obj.m_data和obj1.m_data指向的是同一个内存空间,obj1.m_data所指的空间不能在被利用了,delete
obj1.m_data也不会成功,一致已经无法操作该空间,所以导致内存泄露。
深拷贝采用了在堆内存中申请新的空间来存储数据,这样每个可以避免指针悬挂。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
教师节给高中班主任的祝福语 电缆中4×(240/25)+1×(120/16)表示什么意思? 4根25平方毫米/送电,120米~三相四线满负荷,能耐多少A电流?不伤线?_百 ... 为什么说中国共产党的执政地位是历史和人民的选择?中国社会主义现代化... 华夏思源心理的心理咨询师实操技能培训好吗? 报考中科院的心理咨询师,哪家培训机构最靠谱? 金牛座的女生对待爱情 金牛座女生的爱情观 大家知道答案茶吗? 答案茶--为啥爆红全城,让我们来寻找答案 ...把其中的一个因数21看成了12,结果得到的积比正确的积少1107... Python的复制,深拷贝和浅拷贝的区别 python 深拷贝和浅拷贝的区别 python中浅拷贝和深拷贝的区别 python深拷贝和浅拷贝的区别 华为HONOR 20 Lite怎么隐藏应用? 华为荣耀20怎么从主屏软件一移到隐藏屏上? 如何隐藏应用华为荣耀20? 华为荣耀20怎么样隐藏软件? 华为荣耀V20有图标隐藏功能吗? 有没有什么手机软件是可以在手机上编辑TXT文档的? 什么软件可以在手机写电子版文章 什么手机软件能建文档? word文档手机能做吗 什么软件可以在手机写电子版文章? 手机编辑文件用什么软件? 什么软件可以在手机上,做文件 手机上有什么软件可以做Word文档,并且可以共享给微信好友?急 手机制作文档的软件 华为手机怎么跟小米电子称连 怎样把小米体重秤的测量结果记录到手机 深拷贝和浅拷贝的区别 python Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别) python 为什么有深拷贝浅拷贝 Python中copy和deepcopy中的区别 python 深copy和浅copy问题 Python中的引用,copy和deepcopy的区别 华为手机怎么刷机强行解锁? 手机忘记锁屏密码如何自己刷机? honor手机怎么刷机强行解锁 捡个华为手机怎么刷机强行解锁 普通手机怎么刷机解锁 手机锁屏忘了怎么按键刷机 华为荣耀手机的账号锁怎么刷机解除呢? 如何视频下载到本地文件上 百度上下载的视频为什么本地视频没有?如何下载到本地? 如何把央视频上的视频下载到本地? 如何把网络中的视频下载到本地 iPhone X应该升级iOS12.1.2系统吗?为什么? iphonex升级ios12.1.2怎么样 不用电脑,怎么把苹果手机从9.35升到12.1.2系统?