cai.haibin at gmail.com
Mon Jul 23 14:04:42 CEST 2007
That seems to be hard to read at all, or I am just very new to python?
With that decorator how do I take advantage of it compare when I just
write a function that could do the same as what the decorator did? I
could translate the could from above into ...
def my_func(toto, tata):
#call it like this
On Jul 23, 6:26 pm, Bruno Desthuilliers <bruno.
42.desthuilli... at wtf.websiteburo.oops.com> wrote:
> james_027 a écrit :
> > Hi all,
> > I am having difficulty understanding decorator. The definition was
> > clear for me, but the syntax is not so clear to me.
> > will decorators will always have to be in this way
> > def check_login(func):
> > def _check_login(*args):
> > print "I am decorator"
> > return func(*args)
> > return _check_login
> Sort of... Well, depends...
> Basically, a decorator is a callable taking a callable as argument and
> returning a callable. These callable are usually *but* not necessarily
> functions. You may want to read the section about the special method
> __call__ in the Fine Manual.
> Also, you may want to write a 'parameterized' decorator - a decorator
> taking arguments. In this case, you need one more wrapping level:
> def check_login(msg):
> def check_login_deco(func):
> def _check_login(*args, **kw):
> print msg
> return func(*args, **kw)
> return _check_login
> return check_login_deco
> @check_login("I am the decorator")
> def my_func(toto, tata):
> print toto, tata
More information about the Python-list