Python中copy,deepcopy,浅拷贝(“=”)和深拷贝(“copy.deepcopy()”)
Python 拷贝 copy
2023-09-14 09:06:09 时间
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的用法
相关文章
- Spark系列:Python版Spark编程指南
- python使用matplotlib绘制折线图教程
- python浅拷贝和深拷贝
- python 在windows 中文显示
- 【Python 02】计算机与程序设计
- 简介Python设计模式中的代理模式与模板方法模式编程
- Python的Asyncore异步Socket模块及实现端口转发的例子
- python中精确输出JSON浮点数的方法
- python—时间与时间戳之间的转换
- python的深拷贝和浅拷贝
- 【学习总结】Python-直接赋值、浅拷贝和深度拷贝解析
- Python 调试方法
- 【python cookbook】【字符串与文本】15.给字符串中的变量名做插值处理
- python浅拷贝和深拷贝
- 这5种炫酷的动态可视化图形,Python 制作起来特简单
- 效率倍增!5款非常棒的Python工具!
- python进阶之魔法函数
- 强化学习笔记:马尔科夫链介绍及基于Python的蒙特卡洛仿真
- python pytesser tesseract-ocr 验证码识别