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的gevent框架的入门教程
Apr 29 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
Python heapq使用详解及实例代码
Jan 25 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
利用ctypes获取numpy数组的指针方法
Feb 12 Python
详解Python3注释知识点
Feb 19 Python
Python requests模块session代码实例
Apr 14 Python
解决pycharm安装第三方库失败的问题
May 09 Python
python中什么是面向对象
Jun 11 Python
Python实现自动签到脚本的示例代码
Aug 19 Python
python math模块的基本使用教程
Jan 16 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 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
一个SQL管理员的web接口
2006/10/09 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
vue+webpack中配置ESLint
2018/11/07 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python计算已经过去多少个周末的方法
2015/07/25 Python
简单了解Python中的几种函数
2017/11/03 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
python绘制简单彩虹图
2018/11/19 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
python实现复制文件到指定目录
2019/10/16 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
表达自我的市场:Society6
2018/08/01 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
Ibatis的核心配置文件都有什么
2014/09/08 面试题
银行实习自我鉴定
2013/10/12 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
公司前台辞职报告
2014/01/19 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
护士自荐信范文
2015/03/25 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
2019年亲子运动会口号
2019/10/11 职场文书
怎么用Python识别手势数字
2021/06/07 Python