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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
python使用pyhook监控键盘并实现切换歌曲的功能
Jul 18 Python
跟老齐学Python之用Python计算
Sep 12 Python
python日志记录模块实例及改进
Feb 12 Python
Python 基础教程之包和类的用法
Feb 23 Python
Python创建xml文件示例
Mar 22 Python
PyQT实现多窗口切换
Apr 20 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
解决Pycharm出现的部分快捷键无效问题
Oct 22 Python
Python脚本导出为exe程序的方法
Mar 25 Python
python 爬取豆瓣网页的示例
Apr 13 Python
4种非常实用的python内置数据结构
Apr 28 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
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
Python中的高级数据结构详解
2015/03/27 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python动态规划算法实例详解
2020/11/22 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
酒吧员工的岗位职责
2013/11/26 职场文书
工程安全员岗位职责
2014/03/09 职场文书
销售经理竞聘书
2014/03/31 职场文书
公司募捐倡议书
2014/05/14 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
个人查摆剖析材料
2014/10/04 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python