On 27 mar, 17:21, vsoler <vicente.so...@gmail.com> wrote: > On 27 mar, 17:06, Patrick Maupin <pmau...@gmail.com> wrote: > > > > > 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 > > Pat, > > I think some lines are missing. I don't see "d" function defined. Any > lines above def wrapper? > > Thank you
Patrick, I see what happened. The first line was somehow hidden. Thank you very much. Vicente Soler -- http://mail.python.org/mailman/listinfo/python-list