Je tiens à imiter le passage par valeur, le comportement en python. En d'autres termes, je voudrais assurez-vous que la fonction que j'écris ne modifiez pas les données fournies par les utilisateurs.
Une façon est d'utiliser copie en profondeur:
from copy import deepcopy
def f(data):
data = deepcopy(data)
#do stuff
est-il plus efficace ou plus pythonic moyen d'atteindre cet objectif, en faisant le moins d'hypothèses possibles sur l'objet passé (tels que .méthode clone ())
Modifier
Je suis conscient que, techniquement, tout en python est passé par valeur. J'ai été intéressé par l'émulation du comportement, c'est à dire faire en sorte que je ne plaisante pas avec les données qui ont été transmis à la fonction. Je suppose que la manière la plus générale est de cloner l'objet en question, soit avec ses propres clone mécanisme ou avec propriétédeepcopy.