class TracingDict(dict): def __setitem__(self, k, v): print "SET",k return dict.__setitem__(self,k,v) def __getitem__(self, k): print "GET",k return dict.__getitem__(self,k) exec "x=1;y=x" in TracingDict()