[Tutor] Decorators

Mary Morris marris1031 at gmail.com
Wed Jun 30 21:52:50 CEST 2010


I need help with the following task for my new job:
The code we're using is python, which I have never worked with before.

Our AMS source code relies heavily on decorators.Things look something like
this:

@decomaker(argA, argB, ...)
def func(arg1, arg2, ...):
     pass

which is the same as

func = decomaker(argA, argB, ...)(func)

and

@dec2
@dec1
def func(arg1, arg2, ...):
     pass
func = dec2(dec1(func))

Or when implemented the second example looks like:

def dec1(func):
     def new_func(arg1, arg2, ...):
          ... do something...
          ret = func(arg1, arg 2, ...)
          ...  do more things...
          return ret
     return new_func


My first task is that there is an issue with the name new_func.  When the
program crashes, that is what shows up in the logs-which doesn't help debug
anything.  I need to find out every decorator and make sure it has a
descriptive name.  I was thinking I could write a simple script which would
parse through all of the source files and find decorators-maybe by looking
for the @ symbol?  Then I could manually check to make sure it has a good
name.  I was thinking I could copy the searching code from find_imports.py
(up to the startswith() calls) and print the list of decorators found and
which files that they're in.  I have never worked with python before so I
definitely need help with this task-any suggestions or examples that would
be helpful?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100630/58a66297/attachment.html>


More information about the Tutor mailing list