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科学计算环境推荐——Anaconda
Jun 30 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
Python实现的双色球生成功能示例
Dec 18 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
Python 函数基础知识汇总
Mar 09 Python
python实现NB-IoT模块远程控制
Jun 20 Python
Python面向对象程序设计示例小结
Jan 30 Python
python实现维吉尼亚加密法
Mar 20 Python
安装python及pycharm的教程图解
Oct 10 Python
Python tkinter常用操作代码实例
Jan 03 Python
Tensorflow累加的实现案例
Feb 05 Python
Python实现文字pdf转换图片pdf效果
Apr 03 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
用javascript实现点击链接弹出"图片另存为"而不是直接打开
2007/08/15 Javascript
Prototype Template对象 学习
2009/07/19 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
Python的一些用法分享
2012/10/07 Python
python算法学习之计数排序实例
2013/12/18 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
python ftplib模块使用代码实例
2019/12/31 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
美国性感女装网站:bebe
2017/03/04 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
学生出入校管理制度
2014/01/16 职场文书
设备管理实施方案
2014/05/31 职场文书
工地安全质量标语
2014/06/07 职场文书
财政局个人总结
2015/03/04 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
迎新生晚会主持词
2015/06/30 职场文书
寒假致家长的一封信
2015/10/10 职场文书
《青山不老》教学反思
2016/02/22 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
QT与javascript交互数据的实现
2021/05/26 Javascript