ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python深拷贝和浅拷贝

2021-11-28 20:02:31  阅读:106  来源: 互联网

标签:Python python 对象 调用 拷贝 copy 赋值


        像Java,Python这样的语言,存在着深拷贝,浅拷贝的问题。下面我们先通过一张图来看看变量和对象的关系

 

拷贝:

在业务中有时我们需要复制一个对象,但是又不想对原对象产生副作用,那就不能通过赋值给新变量来解决了(赋值不是拷贝一个对象)。Python专门提供了一种拷贝机制,基于原对象创建一个含有相同值的对象。拷贝有copy模块提供。

拷贝分成浅拷贝和深拷贝。

浅拷贝包括:

  • 对列表切片拷贝:L[:]
  • 调用对象的拷贝方法:list.copy()
  • 调用:copy.copy()

深拷贝包括:

  • 调用:copy.deepcopy()

那么,浅拷贝和深拷贝有什么异同呢?两种拷贝的异同可以用下表描述:

解释:

浅拷贝:拷贝出来的a对象是引用x和y,当修改x或y的值时,a也会改变;
深拷贝:会把里面的元素也重新拷贝一份,拷贝了一份x和y的值相等的两个元素,修改x和y的值,不会对b产生影响。

 

标签:Python,python,对象,调用,拷贝,copy,赋值
来源: https://blog.csdn.net/weixin_51114404/article/details/121596378

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有