这是Python语言,请问其中的第五行dc=……有啥用为啥用dc?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是Python语言,请问其中的第五行dc=……有啥用为啥用dc?相关的知识,希望对你有一定的参考价值。

那是定义的一个变量名,作用是深拷贝对象d,无论你是用dc,还是用其他字母代替都是无所谓的。
从你这个例子来看应该是用来研究python引用的区别.
copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
copy.deepcopy 深拷贝 拷贝对象及其子对象

这里有个更好的例子可以参考:

import copy
a = [1, 2, 3, 4, ['a', 'b']] #原始对象
b = a #赋值,传对象的引用
c = copy.copy(a) #对象拷贝,浅拷贝
d = copy.deepcopy(a) #对象拷贝,深拷贝
a.append(5) #修改对象a
a[4].append('c') #修改对象a中的['a', 'b']数组对象
print 'a = ', a
print 'b = ', b
print 'c = ', c
print 'd = ', d
参考技术A 首先,dc为d的深层拷贝;
其次,深层拷贝在所以的python对象上都起作用,对于字典来说就是key-value中的value可以为任何深度的值;
最后,打印c的值,d的值还有dc的值就能看到深层拷贝与简单copy的区别了;
值得注意的是d变化的同时,c也跟着变化,因为c是d的shadow,而dc作为深层拷贝的结果却不跟随原始对象d的变化而变化追问

那深层拷贝的“深”体现在哪里,既然不跟随原始对象d的变化而变化。一般深层拷贝在什么情况下运用的比较多?

追答

深层拷贝往往以一个已经存在的对象为原型构造新的对象,新对象的变化不会影响原来的对象,这就是其真正的妙用。很多操作(函数)在操作原有对象的时候往往改变了其状态,但如果采用深层拷贝,并在新的对象上进行操作就不用担心破坏原来的对象了。在开发中这样的情况遇到的几率还是很大的,所以掌握深层拷贝,然后在需要的时候用它,定能体会其好处!

本回答被提问者采纳
参考技术B 这是深度复制

以上是关于这是Python语言,请问其中的第五行dc=……有啥用为啥用dc?的主要内容,如果未能解决你的问题,请参考以下文章

请问mfc里怎么在特定位置显示文字

关于DataGridView控件的几个属性

Python|基于百度API五行代码实现OCR文字高识别率

请问:经常看到PLC的CPU中有AC/DC/ 继电器与 DC/DC/DC两种,他们的区别是啥?详细说明,谢谢.

请问下C语言如何从一个输入的字符串中取出第一个字母并且输出?

Python从第二行到第十五行读取文本文件[关闭]