How can I create a dict that sets a flag if it's been modified

Mike Meyer mwm at mired.org
Thu Jan 12 12:18:50 EST 2006


>> here's one attempt. (I'm no expert, so wait for better :-)
>>  >>> class ModFlagDict(dict):
>> 	def __init__(self, *args, **kwargs):
>> 		super(ModFlagDict, self).__init__(*args, **kwargs)
>> 		self.modified = False
>> 	def __setitem__(self, key, value):
>> 		self.modified = True
>> 		super(ModFlagDict, self).__setitem__(key, value)

You also need to catch __delitem__.

You may need to catch pop, update, clear and setdefault, depending on
whether or not they call the __setitem__/__delitem__. Personally, I'd
catch them all and make sure the flag got set appropriately, because
whether or not they use those methods is an implementation detail that
may change in the future.

    <mike
-- 
Mike Meyer <mwm at mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.



More information about the Python-list mailing list