python 直接赋值和copy的区别详解


Posted in Python onAugust 07, 2019

直接赋值和copy的区别:

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

例子:

dict1 = {'user':'runoob','num':[1,2,3]} 
dict2 = dict1       # 浅拷贝: 引用对象
dict3 = dict1.copy()  # 深拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用 
# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1) 
# 输出结果
print(dict1)
print(dict2)
print(dict3)

实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。

{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'runoob', 'num': [2, 3]}

例子:求打印的结果

def extend_list(val, list=[]):
  list.append(val)
  return list
list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a') 
print("list1 = %s" % list1)
print("list2 = %s" % list2)
print("list3 = %s" % list3)

输出结果:

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

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

Python 相关文章推荐
在Python中使用列表生成式的教程
Apr 27 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
python构建自定义回调函数详解
Jun 20 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
自定义Django默认的sitemap站点地图样式
Mar 04 Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
python math模块的基本使用教程
Jan 16 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 #Python
python的常见矩阵运算(小结)
Aug 07 #Python
python字典的setdefault的巧妙用法
Aug 07 #Python
解决Django中调用keras的模型出现的问题
Aug 07 #Python
python 字典 setdefault()和get()方法比较详解
Aug 07 #Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 #Python
如何用Python来搭建一个简单的推荐系统
Aug 07 #Python
You might like
PHP中实现进程间通讯
2006/10/09 PHP
第八节--访问方式
2006/11/16 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
大学教师年终总结的自我评价
2013/10/29 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
北京奥运会口号
2014/06/21 职场文书
元旦标语大全
2014/10/09 职场文书
教师听课评语大全
2014/12/31 职场文书
财务人员入职担保书
2015/09/22 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技