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()”)相关推荐

  1. Python中赋值、浅拷贝、深拷贝

    一.赋值 Python中赋值就是对对象的简单引用,这一点与C++不同,如下: a = [1, '123', [12, 'C']] b = a 在上述情况下,a和b是一样的,他们指向同一片内存,b不过是 ...

  2. Python copy模块浅拷贝和深拷贝

    Python copy模块浅拷贝和深拷贝 在开发中,经常涉及到数据的传递,在数据传递使用的过程中,可能会对数据进行修改. 对数据进行处理后,如果在后面的代码中,即需要使用修改之前的数据,也需要使用修改 ...

  3. python数组元素赋值_Python数组中赋值,浅拷贝,深拷贝的区别

    要用到的工具 id(a) 函数用于获取对象a的内存地址. a is b 是用来比较 a 和 b 是不是指向同一个内存单元. 1. 直接赋值: 如下图用工具比较后发现直接赋值后两个列表指向同一内存单元. ...

  4. 深入浅出理解Java中数组的浅拷贝和深拷贝

    深入浅出带你理解Java中数组的浅拷贝和深拷贝 深浅拷贝的区别 深浅拷贝的区别 所谓浅拷贝,一般指的就是对象引用,例如 Teacher teacher = new Teacher(); teacher ...

  5. python中的浅拷贝与深拷贝——copy()

    1.copy()方法用来拷贝列表元素 1 a = [1, 2, 3] 2 # 拷贝 3 b = a.copy() 4 print('a = ', a, '\n', 'b = ', b) 5 6 # 执 ...

  6. Python中list的复制及深拷贝与浅拷贝探究

    在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...

  7. 一入python深似海--浅拷贝与深拷贝

    python中有一个模块copy,deepcopy函数用于深拷贝,copy函数用于浅拷贝. 要理解浅拷贝,必须先弄清楚python中的引用. 引用 Python中一切都是对象,变量中存放的是对象的引用 ...

  8. Python的复制、浅拷贝、深拷贝区别和代码说明

    Python赋值 总结 一.概念解读 赋值:旧瓶装旧酒 浅拷贝:新瓶装旧酒 深拷贝:新瓶装新酒 二.实例测试 测试方法 赋值 浅拷贝 深拷贝 附录:全代码 赋值.浅拷贝.深拷贝 总结 赋值: 新建一个 ...

  9. C++ 中的深入浅拷贝和深拷贝

    浅拷贝和深拷贝都是相对拷贝构造函数来讲的 下面代码实现浅拷贝, 1 #include <stdio.h> 2 #include <iostream> 3 #include &l ...

  10. Python高级——赋值、浅拷贝与深拷贝

    赋值-浅拷贝-深拷贝 1.赋值: 对象赋值的本质是对象之间引用的传递,即多个对象指向同一内存空间. 2.浅拷贝: 浅拷贝是对一个对象的顶层数据的拷贝(如果拷贝嵌套对象,只能拷贝顶层,底层数据还是引用. ...

最新文章

  1. 第三周-第08章节-Python3.5-文件修改详解
  2. git 代理 git_如何不再害怕GIT
  3. Spring Cloud入门教程 - Zuul实现API网关和请求过滤
  4. Mysql中的count()与sum()区别
  5. Go 定时器和断续器
  6. ajax异步查询demo,ASP.NET中AJAX的异步加载(Demo演示)
  7. MFC控件编程之组合框跟列表框
  8. java学习(172): 使用class实现反射编程,创建对象
  9. dell网卡linux驱动,DELL R710 服务器 Linux 系统网卡驱动安装
  10. ctfshow-WEB-web8
  11. pp什么叫php的事务,ThinkPHP5.0框架事务处理操作简单示例
  12. Matlab学习10-图像处理之傅里叶变换
  13. 蒙版操作—剪切蒙版制作艺术字
  14. 的计算机基本操作知识,电脑的基本操作知识有哪些
  15. uniapp移除原生导航栏后页面与手机状态栏重叠问题
  16. Docker搭建PHP运行环境
  17. 计算机网络学网络制图吗,计算机网络论文发表简述计算机设计制图教学改革
  18. 使用window小娜实现文本转语音
  19. 云计算 码率适配限速_一种基于云计算的应用于用户终端的测速方法
  20. 条件概率,乘法定理,全概率公式

热门文章

  1. JEECG再创新举,开辟支付宝服务窗开发新时代,业内独家培训 《支付宝服务窗实战培训》
  2. 开发指南专题一: JEECG微云快速开发平台前言
  3. springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率
  4. SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
  5. 营销获客场景下的个人类业务要件分析
  6. Windows下Git Bash Here怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)
  7. Socket编程实践(11) --epoll原理与封装
  8. python PIL.Image使用
  9. Mybatis中接口和对应的mapper文件位置配置详解
  10. 互联网企业安全高级指南3.5 选择在不同的维度做防御