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])

简而言之,浅拷贝对于可变对象会影响原参数,而对于不可变对象则不会。了解这一点对于避免潜在的代码错误至关重要。

Python 浅拷贝会改变原参数吗? - 详解及示例

原文地址: https://www.cveoy.top/t/topic/oo4A 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录