[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

Reply via email to