I have a dict subclass that associates extra data with each value of the key/value items:
class MyDict(dict): def __setitem__(self, key, value): super(MyDict, self).__setitem__(key, (value, "extra_data")) def __getitem__(self, key): return super(MyDict, self).__getitem__(key)[0] # plus extra methods This works fine for item access, updates, etc: >>> d = MyDict() >>> d[0] = 'a'; d[1] = 'b' >>> d[1] 'b' But if I try to create a regular dict from this, dict() doesn't call my __getitem__ method: >>> dict(d) {0: ('a', 'extra_data'), 1: ('b', 'extra_data')} instead of {0: 'a', 1: 'b'} as I expected. How can I fix this? -- Steven -- http://mail.python.org/mailman/listinfo/python-list