ご存知のように、Pythonではdict.__getitem__
メソッドをオーバーライドするだけで、誰かがメソッドから値を取得しようとしたときに、そこで別のことを実行できます。
MyDict(dict)
あるクラスインスタンスが別のpythondictインスタンスのupdateメソッドに渡されるときに、いくつかのコードを実行したいと思います。下記参照:
class MyDict(dict):
def __getitem__(self, item):
print "Doing some stuff here"
return dict.__getitem__(self, item)
d1 = MyDict({'1': 1, '2': 2})
d2 = {}
# I want to have d1.__getitem__ called, but it does not work :-(
d2.update(d1)