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