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走迷宫算法题
Jan 22 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
Python实现定时精度可调节的定时器
Apr 15 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
Django rest framework jwt的使用方法详解
Aug 08 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
通过实例解析Python return运行原理
Mar 04 Python
Django 多对多字段的更新和插入数据实例
Mar 31 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
浅谈python处理json和redis hash的坑
Jul 16 Python
Python发送邮件实现基础解析
Aug 14 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
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
vue 实现动态路由的方法
2020/07/06 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
枚举与#define宏的区别
2014/04/30 面试题
四年大学生活的个人自我评价
2013/12/11 职场文书
中国梦的演讲稿
2014/01/08 职场文书
目标管理责任书
2014/04/15 职场文书
家长会欢迎标语
2014/06/24 职场文书
委托书怎样写
2014/08/30 职场文书
医德医风自我评价
2014/09/19 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
2014年卫生工作总结
2014/11/27 职场文书
感恩老师主题班会
2015/08/12 职场文书
八年级物理教学反思
2016/02/19 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis