Python直接赋值及深浅拷贝原理详解


Posted in Python onSeptember 05, 2020

定义

  • 直接赋值:就是对象的引用(别名)
  • 浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象
  • 深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝父对象及其子对象

解释

b = a: 赋值引用,a和b都指向同一个对象

Python直接赋值及深浅拷贝原理详解

b = a.copy(): 浅拷贝,a和b都是一个独立的对象,但它们的子对象是指向统一对象(是引用)

Python直接赋值及深浅拷贝原理详解

b = copy.deepcopy(a): 深拷贝,a和b完全拷贝了父对象及其子对象,两者是完全独立的

Python直接赋值及深浅拷贝原理详解

示例

以下是直接赋值、浅拷贝和深拷贝之对比

import copy

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']]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
python保存字符串到文件的方法
Jul 01 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python try except 捕获所有异常的实例
Oct 18 Python
Python基础之条件控制操作示例【if语句】
Mar 23 Python
Python进度条的制作代码实例
Aug 31 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
如何解决python多种版本冲突问题
Oct 13 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 Python
Python数据库封装实现代码示例解析
Sep 05 #Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 #Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 #Python
Python filter()及reduce()函数使用方法解析
Sep 05 #Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 #Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 #Python
Python实现快速大文件比较代码解析
Sep 04 #Python
You might like
php弹出对话框实现重定向代码
2014/01/23 PHP
php加密解密字符串示例
2016/10/13 PHP
JavaScript 参考教程
2006/12/29 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
js实现select下拉框选择
2020/01/11 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
高质量Python代码编写的5个优化技巧
2017/11/16 Python
python 对象和json互相转换方法
2018/03/22 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
python中os包的用法
2020/06/01 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
电子信息专业自荐书
2014/02/04 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
社区节水倡议书
2015/04/29 职场文书
人工作失职检讨书
2015/05/05 职场文书
2016幼儿园毕业感言
2015/12/08 职场文书
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers