Hi all, given the following code: --- def append(method,bottom): def wrapped(*args, **kwargs): res = method(*args, **kwargs) return bottom(res,*args, **kwargs) setattr(method.im_class,method.__name__,wrapped)
def prepend(method,top): def wrapped(*args, **kwargs): top(*args, **kwargs) return method(*args, **kwargs) setattr(method.im_class,method.__name__,wrapped) def test(): class C: def f(self): print "f" def pre(self): print "pre" def post(res,self): print "post" prepend(C.f,pre) append(C.f,post) C().f() --- how comes that test() only outputs: pre f rather than what I expected: pre f post Thanks very much in advance, cheers, Nicolas -- http://mail.python.org/mailman/listinfo/python-list