I have been playing with the deepcopy function and the copy function and I get the same issue with both of them. It is like the copy was a reference (or a pointer) instead of a proper copy. I am working with data records (classes) in Python, maybe it could be that.. I show you an example:
>>> import copy >>> class player1: ... age = 23 ... score = 1 >>> class player2: ... age = 14 ... score = 2 >>> player3 = copy.deepcopy(player1) I print the parameters.
>>> print player1.age, player1.score 23 1 >>> print player2.age, player2.score 14 2 >>> print player3.age, player3.score 23 1 Now I increment the score parameter in player1 data record.
>>> player1.score += 3 And I print the results again.
>>> print player1.age, player1.score 23 4 >>> print player2.age, player2.score 14 2 >>> print player3.age, player3.score 23 4 WHY HAS PLAYER 3 CHANGED? I just incremented a parameter in player1, not player3. It is mutable instead of immutable.
Thanks in advance.