class Logger(object): def __init__(self, obj): self.obj = obj def __getattr__(self, name): print 'get: %s.%s' % (self.obj, name) return getattr(self.obj, name) def __setattr__(self, name, value): if name == 'obj': object.__setattr__(self, name, value) else: print 'set: %s.%s = %s' % (self.obj, name, value) setattr(self.obj, name, value)