copy.copy(obj) vs obj.copy() - Python - Programmation
Marsh Posté le 14-12-2011 à 23:17:34
Le résultat est le même mais la seconde solution est bien plus simple à écrire et à maintenir.
Pour obtenir le même résultat avec la première méthode, il faut que ta méthode mycopy() liste tous les attributs de ta classe (peut devenir fastidieux s'il y en a beaucoup) et surtout doit réaliser l'opération de manière récursive sur tous les attributs complexes. Explication:
c = C(a=1, b=2) |
Dans la deuxième situation, la copie n'est pas réalisé pour l'attribut b, en voici la preuve en affichant les id des objets:
>>> print id(c1) |
On voit bien que c1 et new_obj.b indiquent le même objet (même id): la copie doit être réalisée de manière récursive. C'est ce que fait copy.copy() (et probablement plus rapidement par dessus le marché)
Marsh Posté le 12-01-2012 à 21:11:33
> Merci mistera pour ta réponse qui recoupe l'opinion que j'avais finis par me faire.
Marsh Posté le 17-08-2011 à 22:23:33
Bonjour,
je me demande quelles sont les différences entre ces deux méthodes de copie d'objet :
Merci de votre aide !
edit : copy.deepcopy -> copy.copy
Message édité par suizokukan le 17-08-2011 à 23:15:55
---------------
rule #1 : trust the python