On Thu, Apr 14, 2016 at 07:38:31PM +0000, Albert-Jan Roskam wrote:
> Hi,
> 
> Lately I have been using the "mutable namedtuple"  shown below a lot. 
> I found it somewhere on StackOverflow or ActiveState or something. In 
> its original form, it only had an __init__ method. I noticed that 
> copying Record objects sometimes failed.

Failed how?

Given how simple the class looks, I wonder whether that's a bug in copy. 
Apart from a fancy __str__ method, there's practically nothing to it!

So I took your Record class, stripped out the __copy__ and __deepcopy__ 
methods, created a slightly complex instance, and tried copying it:

d = Record(spam=23, ham=42, eggs=[], cheese={})
d.cheese[1] = None
d.cheese[2] = ['a', 'b', 'c']
d.eggs.append(100)
d.eggs.append(200)
d.eggs.append(d)
d.eggs.append(d.cheese)

from copy import copy, deepcopy

copy(d)
deepcopy(d)


and both appeat to work correctly. So perhaps you ought to look more 
carefully at the copying failure?



-- 
Steve
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to