python - local variable referenced before assignment for decorator -


i'm using decorator functional syntax it's described here.

i loop on list of dict. in loop wrap generic function decorator taking parameter. call wrapped function current dict parameters.

my problem local variable 'generic_evaluator' referenced before assignment error.

here code:

the concerned decorator:

def log(logfile_name):     def inner_log(func):         def wrapped(*args, **kwargs):             import os             ret = func()             # business code...         return wraps(func)(wrapped)     return inner_log 

and here place wrap generic_evaluator function log decorator.

for evaluation in generic_evaluations:     generic_evaluator = log(evaluation['suffix'])(generic_evaluator)     generic_evaluator(evaluation['suffix'], evaluation['id']) 

edit

it'll more clear piece of code in addition:

@tictoc def generic_evaluator(suffix_url, id):     xml = etree.parse(get_resource(base_url + "/" + suffix_url + "/" + str(id)))     links = fetch_urls_from_xml(xml)     return links 

if generic_evaluator global function, , want rebind global name generic_evaluator, declare name global:

global generic_evaluator 

if don't want rebind global name, use different local name , initialise it:

local_generic_evaluator = generic_evaluator 

this answer gives explanation of what's going on.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -