问题陈述:
在 Python 中,创建对象的副本可能会看起来就像将一个对象分配给另一个对象一样简单。然而,这个简单的赋值创建了对原始对象的引用,而不是一个新的独立实例。对一个对象的修改将传播到另一个对象。这可能会导致意外的行为和潜在的错误。
解决方案:使用 copy.deepcopy() 进行深度复制
要创建对象的真正独立副本,我们使用副本中的 copy.deepcopy() 函数 模块。此函数执行深度复制,递归复制原始对象的所有属性和子对象。生成的副本是一个独立的对象,拥有自己的内存位置和值。
示例:
<code class="python">import copy original_obj = {'name': 'Alice', 'age': 30} copy_obj = copy.deepcopy(original_obj) copy_obj['name'] = 'Bob' # Modify copy print(original_obj) # Output: {'name': 'Alice', 'age': 30} (Unchanged) print(copy_obj) # Output: {'name': 'Bob', 'age': 30} (Independent)</code>
在这种情况下,copy_obj 真正独立于original_obj。修改一个对象不会影响另一个对象。这使您能够创建具有不同值的多个对象,同时共享相同的初始属性。
注意:
浅复制,可以通过 copy.copy() 实现,仅复制数据结构的值,保留任何包含的引用原样。通常首选深度复制以确保对象独立性。
以上是如何在Python中创建对象的独立副本?的详细内容。更多信息请关注PHP中文网其他相关文章!