最近在捣鼓python,前几天看到一个文章写的关于浅拷贝和 深拷贝,转载一下其中的实例:

importcopy
a =[1, 2, 3, 4, ['a', 'b']]  #原始对象

b =a  #赋值,传对象的引用
c =copy.copy(a)  #对象拷贝,浅拷贝
d =copy.deepcopy(a)  #对象拷贝,深拷贝

a.append(5)  #修改对象a
a[4].append('c')  #修改对象a中的['a', 'b']数组对象

print'a = ', a
print'b = ', b
print'c = ', c
print'd = ', d

输出结果:
a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c =  [1, 2, 3, 4, ['a', 'b', 'c']]
d =  [1, 2, 3, 4, ['a', 'b']]

这个实例很简明扼要,为甚要说这个问题呢?因为今天在一个坑里捣鼓很久,最后跟踪发现原来是这个问题。先上伪代码(代码不在本机上,没现成的):
arr
function1()
global arr_1
arr_1 = arr
return arr_1  //升序
function2()
global arr_2
arr_2 = arr
return arr_2 //降序
在个function内部arr_1 和arr_2print出来都是ok的
在main函数print上述两个值则是一样的
通过print,发现在function2中对arr做处理的时候,arr_1就变了。
对照文章开始的实例即可知原因了

转载于:https://www.cnblogs.com/chateldon/p/3344302.html

python的浅拷贝和深copy相关推荐

  1. python教程:深copy浅copy

    在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用. 1. 赋值 赋值其实只是传递对象引用,引用对象 ...

  2. Python的深copy和浅copy

    浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象. 浅copy: a = [1, 2, ...

  3. 关于python深copy与浅copy的一点理解

    一直对python深copy和浅copy似懂非懂的状态,看了这篇文章,觉得自己懂了很多,给各位参考! 出处:https://www.cnblogs.com/fandx/p/10462913.html ...

  4. python 深copy_python中的深copy和浅copy

    bytes Python bytes/str bytes 在Python3中作为一种单独的数据类型,不能拼接,不能拼接,不能拼接 >>> '€20'.encode('utf-8') ...

  5. Python学习日记(六) 浅深copy

    浅深copy即完全复制一份和部分复制一份 浅深copy在列表数据量较大时不建议使用,比较消耗内存资源 1.赋值运算 l1 = [1,'s',[1,2,3]] l2 = l1 print(id(l1), ...

  6. python浅复制与深复制_Python中的浅复制与深复制

    python浅复制与深复制 In python, the assignment operator does not copy the objects, instead, they create bin ...

  7. 【ObjectC—浅copy和深copy】

    一.OC设计copy的目的 为了能够从源对象copy一个新的对象副本,改变新对象(副本)的时候,不会影响到原来的对象. 二.实现copy协议 OC提供了两种copy方法:copy和mutableCop ...

  8. Python的浅拷贝和深拷贝

    相对于其他传统编程语言,Python有一个比较奇怪的特性,即在复制对象时,有浅拷贝(shallow copy)和深拷贝(deep copy)两种方式. 浅拷贝和深拷贝只和复合对象相关.复合对象指的是包 ...

  9. Python中浅拷贝与深拷贝的骚操作

    作者:缪斯mius@阿里云Python训练营 博客地址:https://blog.csdn.net/m0_37759382/article/details/108489108 [例子]浅拷贝与深拷贝中 ...

  10. Python中浅拷贝和深拷贝的理解与研究

    Python中浅拷贝和深拷贝的理解与研究 单层浅拷贝 import copy a = 1 # 不可变数据类型 copy_a = copy.copy(a) print(id(a),id(copy_a)) ...

最新文章

  1. 李宏毅强化学习完整笔记!开源项目《LeeDeepRL-Notes》发布
  2. 面向动态环境基于点的语义SLAM系统
  3. BZOJ 1055 [HAOI2008]玩具取名
  4. markdown 生成目录_github上如何为markdown文件生成目录
  5. (五)深入浅出TCPIP之TCP流量控制
  6. java自学难点_学习JAVA遇到的难点总结
  7. html post提交中文数据,HTML使用post方式提交中文内容出现乱码的错误解决方式
  8. Android——最全的系统对话框(AlertDialog)详解
  9. 【备忘】年薪50万2018年最新北风网大数据Spark2.0从入门到精通视频教程
  10. 小米pro安装win10系统
  11. 海康威视多摄像头视频实时采集——OpenCV显示
  12. 登录业务的演变、单点登录(SSO)的三种解决方案
  13. DER论文详解DER: Dynamically Expandable Representation for Class Incremental Learning, CVPR 2021
  14. win10更新安装会卡在44%怎么办
  15. android 半透明裁剪框 截取图片 头像
  16. C语言练习1-判断四根木棍是否可以摆成三角形
  17. 推荐几款炫酷的 MySQL 可视化管理工具!好用到爆!!
  18. CentOS7安装Nginx及配置
  19. 【Unity项目】仿《空洞骑士》项目
  20. java使用htmlunit+Jsoup爬虫,爬取ajax动态数据

热门文章

  1. Axure实战:滑动拼图解锁教程
  2. EasyNVR对接EasyCloud视频云平台进行云端录像
  3. 图书馆管理系统 Java
  4. 阿里巴巴前端知识图谱
  5. LCP 03. 机器人大冒险
  6. 解决VBE6EXT.OLB不能被加载问题
  7. 物联网产品的发展简介(二)【产品篇02】
  8. 物联网产品的平台架构
  9. ES工具--kibana
  10. QT QMessageBox 按钮文字更改为中文