Hi, i am new to python and i have a question about how decorators are working. I have understand HOW they do their magic but i am trying to figure out
WHEN they do it... I have the following simple example: #----------------------------------------- def author(author_name): def decorator(func): func.author_name = author_name return func return decorator @author("some author") def F(): pass # print F.author_name #----------------------------------------- I am using Eclipse/PyDev and when i run this snippet from the PyDev debugger, i see that even though i do not call F() (or reference F.author_name), the decorator and all this stuff is executed and updates F.autor_name variable. How is this thing really working ?? I mean, if we run this .py file (pythn test.py) from the command prompt, what the runtime will do, even if we do not have ane commands to execute, only functions as above ? It will load all the module, all the functions and when it sees that some function(s) are decorating, then it will start execute respectives decorators ? And this will do it for all decorated functions ?? Even if we do not have any references to these functions ? Shouldn't this code called when we actually DO call it ? Thanks a lot for any enlightment on this, objectref -- http://mail.python.org/mailman/listinfo/python-list