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解析xml文件实例分享
Dec 04 Python
Python是编译运行的验证方法
Jan 30 Python
Python标准异常和异常处理详解
Feb 02 Python
Python中的高级数据结构详解
Mar 27 Python
Python判断直线和矩形是否相交的方法
Jul 14 Python
Python使用三种方法实现PCA算法
Dec 12 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
Python装饰器结合递归原理解析
Jul 02 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 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 安全检测代码片段(分享)
2013/07/05 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
一分钟理解js闭包
2016/05/04 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Python单链表的简单实现方法
2014/09/23 Python
python验证码识别的示例代码
2017/09/21 Python
python实现redis三种cas事务操作
2017/12/19 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
python实现简单颜色识别程序
2020/02/19 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
家长对孩子评语
2014/01/30 职场文书
项目转让协议书
2014/10/27 职场文书
毕业生见习报告总结
2014/11/08 职场文书
2014年后勤工作总结
2014/11/18 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
速龙x4-860k处理器相当于i几
2022/04/20 数码科技