Python中copy,deepcopy,浅拷贝(“=”)和深拷贝(“copy.deepcopy()”)
python中对于对象的拷贝分为浅拷贝(copy)和深拷贝(deepcopy)两种方式。其中浅拷贝由“=”完成。而深拷贝由copy模块中deepcopy()函数担任。
浅拷贝和深拷贝的区别是:
浅拷贝只是将原对象在内存中引用地址拷贝过来了。让新的对象指向这个地址。
而深拷贝是将这个对象的所有内容遍历拷贝过来了,相当于跟原来没关系了,所以如果你这时候修改原来对象的值跟他没关系了,不会随之更改。
我觉得深拷贝和浅拷贝的区别在于:
对于浅拷贝来说,如果有一方的内容发生了变化,另一方有可能也会发生变化
而深拷贝,无论哪一方发生什么样的变化,另一方都不会发生改变。
小例子:
深拷贝的一个例子(我们通过深拷贝创建了两个生成器“genA2B_ema”以及“genB2A_ema”):
self.genA2B = ResnetGenerator(input_nc=3, output_nc=3, ngf=self.args.ch, n_blocks=self.args.n_res, img_size=self.args.img_size, args=self.args).to(self.args.device)self.genB2A = ResnetGenerator(input_nc=3, output_nc=3, ngf=self.args.ch, n_blocks=self.args.n_res, img_size=self.args.img_size, args=self.args).to(self.args.device)self.genA2B_ema = copy.deepcopy(self.genA2B).eval().requires_grad_(False)self.genB2A_ema = copy.deepcopy(self.genB2A).eval().requires_grad_(False)
具体的用法看以下链接:
Python中copy,deepcopy,=之深拷贝浅拷贝使用详解_涤生手记大数据-CSDN博客_python中deepcopy的用法
Python---copy()、deepcopy()与赋值的区别_飘过的春风-CSDN博客_copy.deepcopy
Python中copy,deepcopy,浅拷贝(“=”)和深拷贝(“copy.deepcopy()”)相关推荐
- Python中赋值、浅拷贝、深拷贝
一.赋值 Python中赋值就是对对象的简单引用,这一点与C++不同,如下: a = [1, '123', [12, 'C']] b = a 在上述情况下,a和b是一样的,他们指向同一片内存,b不过是 ...
- Python copy模块浅拷贝和深拷贝
Python copy模块浅拷贝和深拷贝 在开发中,经常涉及到数据的传递,在数据传递使用的过程中,可能会对数据进行修改. 对数据进行处理后,如果在后面的代码中,即需要使用修改之前的数据,也需要使用修改 ...
- python数组元素赋值_Python数组中赋值,浅拷贝,深拷贝的区别
要用到的工具 id(a) 函数用于获取对象a的内存地址. a is b 是用来比较 a 和 b 是不是指向同一个内存单元. 1. 直接赋值: 如下图用工具比较后发现直接赋值后两个列表指向同一内存单元. ...
- 深入浅出理解Java中数组的浅拷贝和深拷贝
深入浅出带你理解Java中数组的浅拷贝和深拷贝 深浅拷贝的区别 深浅拷贝的区别 所谓浅拷贝,一般指的就是对象引用,例如 Teacher teacher = new Teacher(); teacher ...
- python中的浅拷贝与深拷贝——copy()
1.copy()方法用来拷贝列表元素 1 a = [1, 2, 3] 2 # 拷贝 3 b = a.copy() 4 print('a = ', a, '\n', 'b = ', b) 5 6 # 执 ...
- Python中list的复制及深拷贝与浅拷贝探究
在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...
- 一入python深似海--浅拷贝与深拷贝
python中有一个模块copy,deepcopy函数用于深拷贝,copy函数用于浅拷贝. 要理解浅拷贝,必须先弄清楚python中的引用. 引用 Python中一切都是对象,变量中存放的是对象的引用 ...
- Python的复制、浅拷贝、深拷贝区别和代码说明
Python赋值 总结 一.概念解读 赋值:旧瓶装旧酒 浅拷贝:新瓶装旧酒 深拷贝:新瓶装新酒 二.实例测试 测试方法 赋值 浅拷贝 深拷贝 附录:全代码 赋值.浅拷贝.深拷贝 总结 赋值: 新建一个 ...
- C++ 中的深入浅拷贝和深拷贝
浅拷贝和深拷贝都是相对拷贝构造函数来讲的 下面代码实现浅拷贝, 1 #include <stdio.h> 2 #include <iostream> 3 #include &l ...
- Python高级——赋值、浅拷贝与深拷贝
赋值-浅拷贝-深拷贝 1.赋值: 对象赋值的本质是对象之间引用的传递,即多个对象指向同一内存空间. 2.浅拷贝: 浅拷贝是对一个对象的顶层数据的拷贝(如果拷贝嵌套对象,只能拷贝顶层,底层数据还是引用. ...
最新文章
- 第三周-第08章节-Python3.5-文件修改详解
- git 代理 git_如何不再害怕GIT
- Spring Cloud入门教程 - Zuul实现API网关和请求过滤
- Mysql中的count()与sum()区别
- Go 定时器和断续器
- ajax异步查询demo,ASP.NET中AJAX的异步加载(Demo演示)
- MFC控件编程之组合框跟列表框
- java学习(172): 使用class实现反射编程,创建对象
- dell网卡linux驱动,DELL R710 服务器 Linux 系统网卡驱动安装
- ctfshow-WEB-web8
- pp什么叫php的事务,ThinkPHP5.0框架事务处理操作简单示例
- Matlab学习10-图像处理之傅里叶变换
- 蒙版操作—剪切蒙版制作艺术字
- 的计算机基本操作知识,电脑的基本操作知识有哪些
- uniapp移除原生导航栏后页面与手机状态栏重叠问题
- Docker搭建PHP运行环境
- 计算机网络学网络制图吗,计算机网络论文发表简述计算机设计制图教学改革
- 使用window小娜实现文本转语音
- 云计算 码率适配限速_一种基于云计算的应用于用户终端的测速方法
- 条件概率,乘法定理,全概率公式
热门文章
- JEECG再创新举,开辟支付宝服务窗开发新时代,业内独家培训 《支付宝服务窗实战培训》
- 开发指南专题一: JEECG微云快速开发平台前言
- springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率
- SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
- 营销获客场景下的个人类业务要件分析
- Windows下Git Bash Here怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)
- Socket编程实践(11) --epoll原理与封装
- python PIL.Image使用
- Mybatis中接口和对应的mapper文件位置配置详解
- 互联网企业安全高级指南3.5 选择在不同的维度做防御