__builtins__.dict.__init__ と __builtins__.dict.update は __builtins__.dict.__setitem__ を経由していない模様
>>> class D(__builtins__.dict): ... def __setitem__(self, k, v): ... print k, v ... super(D, self).__setitem__(k, v) >>> d = D(a = 0, b = 1, c = 2) >>> d.update(d = 3, e = 4, f = 5) >>> d['g'] = 6 g 6
どうしろというのか。python 2.5 では変わっているのか、私の認識がおかしいのか。