Я хотел бы эмулировать поведение передачи значением в Python. Другими словами, я хотел бы сделать абсолютно уверенным, что функция, которую я пишу, не изменяет данные пользователя, которыми снабжают.
Один возможный путь состоит в том, чтобы использовать глубокую копию:
from copy import deepcopy
def f(data):
data = deepcopy(data)
#do stuff
там более эффективно или больше pythonic способа достигнуть этой цели, делая как можно меньше предположений об объекте переданным (таких как .clone () метод)
Править
Я знаю, что технически все в Python передается значением. Я интересовался эмуляцией поведения, т.е. проверкой, которую что я не смешиваю с данными, которые были переданы функции. Я предполагаю, что самый общий путь состоит в том, чтобы клонировать рассматриваемый объект или с его собственным механизмом клона или с deepcopy.