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 GAE、Django导出Excel的方法
Nov 24 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
python绘制多个曲线的折线图
Mar 23 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
python 随机森林算法及其优化详解
Jul 11 Python
python实现的读取网页并分词功能示例
Oct 29 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
Python求凸包及多边形面积教程
Apr 12 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
Python3 使用pip安装git并获取Yahoo金融数据的操作
Apr 08 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 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定时任务延缓执行的实现
2014/10/08 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
javascript实现简易聊天室
2019/07/12 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python常见排序算法基础教程
2017/04/13 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
机械绘图员岗位职责
2013/11/19 职场文书
高级编程求职信模板
2014/02/16 职场文书
表彰会主持词
2014/03/26 职场文书
访谈节目策划方案
2014/05/15 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
女性健康讲座主持词
2015/07/04 职场文书