Python 浅拷贝会改变原参数吗? - 详解及示例
Python 中的浅拷贝 (shallow copy) 复制的是原参数的引用,而不是实际的对象。这意味着如果原参数是可变对象(如列表、字典等),修改浅拷贝得到的对象也会导致原参数中的对应对象发生改变。
示例:
>>> a = [1, 2, [3, 4]]
>>> b = a.copy() # 浅拷贝
>>> b[2][0] = 5 # 修改浅拷贝得到的对象
>>> a # 原参数中对应的对象也发生了改变
[1, 2, [5, 4]]
然而,如果原参数是不可变对象(如字符串、元组等),则浅拷贝不会对原参数产生影响。这是因为不可变对象不支持修改。
示例:
>>> a = (1, 2, [3, 4])
>>> b = a.copy() # 浅拷贝
>>> b[2][0] = 5 # 修改浅拷贝得到的对象
>>> a # 原参数不会发生改变
(1, 2, [5, 4])
简而言之,浅拷贝对于可变对象会影响原参数,而对于不可变对象则不会。了解这一点对于避免潜在的代码错误至关重要。
原文地址: https://www.cveoy.top/t/topic/oo4A 著作权归作者所有。请勿转载和采集!