深浅拷贝

对象引用、浅拷贝、深拷贝(拓展、难点、重点)

Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果

其实这个是由于共享内存导致的结果

拷贝:原则上就是把数据分离出来,复制其数据,并以后修改互不影响。

先看一个非拷贝的例子

使用=赋值(对象引用)

=赋值:数据完全共享

=赋值是在内存中指向同一个对象,如果是可变(mutable)类型,比如列表,修改其中一个,另一个必定改变

如果是不可变类型 (immutable) ,比如字符串,修改了其中一个,另一个并不会变

浅拷贝(copy)

浅拷贝:数据半共享(复制其数据独立内存存放,但是只拷贝成功第一层)

深拷贝(deepcopy)

深拷贝:数据完全不共享(复制其数据完完全全放独立的一个内存,完全拷贝,数据不共享)

深拷贝就是完完全全复制了一份,且数据不会互相影响,因为内存不共享。

深拷贝的方法有

最新文章

  1. mybatis入门_一对多,多对多映射以及整合spring框架
  2. c++句柄设计
  3. poj2385 dp(递推)
  4. JSP中乱码问题
  5. [转]MFC中UpdateData()函数的使用
  6. ubuntu设置vim语法高亮显示和自动缩进
  7. Redstone 云观象台 服务器部署 - Nginx配置文件
  8. VC++ UTF-8与GBK格式转换
  9. Zend studio 12.5.1安装aptana
  10. POJ_2184_Cow_Exhibition_(动态规划,背包)
  11. [置顶] SpecDD系列:“完成” 的定义
  12. C# 中集合类型需要按多个条件排序
  13. 一些公司的面试题目 U3D
  14. 原生JS取代一些JQuery方法的简单实现
  15. DP入门基本问题
  16. eclipse聚合工程如何提交SVN,如何从SVN下载
  17. C++STL 预定义函数对象和函数适配器
  18. 6、使用jconsole+VisualVM分析JVM
  19. 请教 JTable 里的单元格如何使得双击进入单元格后,单元格的内容处于全选中状态
  20. MySQL ALTER讲解

热门文章

  1. 重学数据结构(三)——使用单链表实现LRU淘汰缓存机制
  2. Invalid RNPermission 'ios.permission.xxx'. should be one of: ( )
  3. 前端学习(十二):CSS排版
  4. 萌新学渗透系列之Hack The Box_Devel
  5. MacOS英语学习
  6. matplotlib 去掉坐标轴
  7. 5分钟白嫖我常用的免费效率软件/工具!效率300% up!
  8. Python File fileno() 方法
  9. Python time altzone()方法
  10. 剑指 Offer 52. 两个链表的第一个公共节点