On Mar 27, 10:24 am, vsoler <vicente.so...@gmail.com> wrote: > Hi, > > Still learning Python, now decorators. > > Before diving deeply into decorators, I'd like to apply a function to > another function. > > My "extremely simple function" should print number 3, then the sum of > its 2 arguments. > > Say that I call f(5,7) > I'd like to get, somehow, 3 then 12. > > I've tried the following: > > def d(f): > print 3 > return f > > def f(a, b): > print a+b > > f=d(f) > > However, it does not work. Calling f(5,7) only returns 12, (3 is > missing) > How should I proceed?
>>> def d(f): ... def wrapper(*args): ... print 3 ... return f(*args) ... return wrapper ... >>> def f(a, b): ... print a + b ... >>> f = d(f) >>> f(5, 7) 3 12 HTH, Pat -- http://mail.python.org/mailman/listinfo/python-list