Эмуляция поведения передачи значением в Python

Я хотел бы эмулировать поведение передачи значением в Python. Другими словами, я хотел бы сделать абсолютно уверенным, что функция, которую я пишу, не изменяет данные пользователя, которыми снабжают.

Один возможный путь состоит в том, чтобы использовать глубокую копию:

from copy import deepcopy
def f(data):
    data = deepcopy(data)
    #do stuff

там более эффективно или больше pythonic способа достигнуть этой цели, делая как можно меньше предположений об объекте переданным (таких как .clone () метод)

Править

Я знаю, что технически все в Python передается значением. Я интересовался эмуляцией поведения, т.е. проверкой, которую что я не смешиваю с данными, которые были переданы функции. Я предполагаю, что самый общий путь состоит в том, чтобы клонировать рассматриваемый объект или с его собственным механизмом клона или с deepcopy.

58
задан 13 May 2009 в 09:10

0 ответов

Другие вопросы по тегам:

Похожие вопросы: