首先,结论是:深副本的对象是一个完整的新对象,无论是对象本身(id)还是对象中包含的子对象,都与原始对象不同。
浅复制对象是旧对象和新对象。对象本身(ID)和原始对象完全不同,但是子和原始对象的子对象是相同的。
然后添加分配,分配对象是完整的原始对象,但名称不同。
深度复制是将对象本身(a)复制到另一个对象(b)。这意味着如果对象本身或子对象被更改,则不会影响原始对象。在python中,我们使用deepcopy()深层复制的功能。
浅副本是将引用复制到另一个对象。因此,如果我们将其更改为子对象,它将影响原始对象;但是对象本身的修改不会影响原始对象。使用浅副本的copy()函数。
接下来,使用实际代码向您展示(请注意代码中的注释和输出结果):
a是原始对象,其中包含四个元素,三个int和一个列表;b是直接(a)分配值的结果,c是浅拷贝(a)的结果,d是深拷贝(a)结果的结果(a)的结果(a)。
然后我们修改了A列表,首先添加了INT数据(4),然后修改了A的第四个元素(列表),在第四元素列表中添加了一个新元素“ C”,然后我们输出A,B,C,C,C,D依次。
通过输出结果,我们可以发现直接分配给值的B和A完全相同,并且直接分配给新变量的新变量,无论是对象本身还是在对象是相同的,完全,完全,完整的;
对象c浅副本只是对对象本身的修改和A的修改。与前一个一致
最后,深副本的对象根本没有更改,表明深拷贝本身和包含子对象的目标是全新的,与原始对象无关。
接下来,看看我们。这些对象本身的ID以及对象中第四个元素的ID也可以证明上述结论。
那么,通常在哪个地方引用了深拷贝和浅副本呢?
从数据处理的角度来看,它可以应用于以下场景:
1)当我们处理中间结果时,我们通常不想修改原始数据,因此我们可以在此时使用Deep Copies;2)如果我们只想添加一个新的辅助列(仅是父亲的对象的修改),那么我们可以使用此时使用useshlower副本,保存系统内存。
那么,通常在哪个地方引用了深拷贝和浅副本呢?
从数据处理的角度来看,它可以应用于以下场景:
1)当我们处理中间结果时,我们通常不想修改原始数据,因此我们可以在此时使用Deep Copies;
2)如果我们只想添加一个新的辅助列(仅是父亲的对象的修改),那么我们可以使用浅副本来保存系统内存。
我希望这篇文章能够帮助您了解深副本和浅副本。
欢迎大家在消息区域留言,讨论其他副本的实际应用?
我是一只老手表,我爱猫和爱技术?