[EMAIL PROTECTED] wrote: > [EMAIL PROTECTED] wrote: > >>It's important that I can read the contents of the dict without >>flagging it as modified, but I want it to set the flag the moment I add >>a new element or alter an existing one (the values in the dict are >>mutable), this is what makes it difficult. Because the values are >>mutable I don't think you can tell the difference between a read and a >>write without making some sort of wrapper around them. >> >>Still, I'd love to hear how you guys would do it. > > > if the dictionary is small and speed not important, you can wrap it > in a class catching __getitem__ and __setitem__ and testing > if repr(self) changes. > > d = {1: [a, b], 2: [b, c]}
d[1][0] = 3 How would this work? __getitem__() will be called once, to get a reference to the list, and so there's no opportunity to compare the 'before' and 'after' repr() values. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC www.holdenweb.com PyCon TX 2006 www.python.org/pycon/ -- http://mail.python.org/mailman/listinfo/python-list