我想模拟 python 中的按值传递行为。换句话说,我想绝对确保我编写的函数不会修改用户提供的数据。
一种可能的方法是使用深拷贝:
from copy import deepcopy
def f(data):
data = deepcopy(data)
#do stuff
是否有更有效或更pythonic的方式来实现这个目标,对传递的对象做出尽可能少的假设(例如 .clone() 方法)
编辑
我知道从技术上讲,python 中的所有内容都是按值传递的。我对模拟这种行为很感兴趣,即确保我不会弄乱传递给函数的数据。我想最通用的方法是使用自己的克隆机制或使用 deepcopy 克隆有问题的对象。