我正在使用具有此处描述的功能语法的装饰器。
我遍历一个字典列表。在这个循环中,我用带参数的装饰器包装了一个通用函数。然后我用当前字典作为参数调用包装函数。
我的问题是我得到一个local variable 'generic_evaluator' referenced before assignment
错误。
这是我的代码:
相关装饰师:
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
这里是我用装饰器包装generic_evaluator
函数的地方。log
for evaluation in generic_evaluations:
generic_evaluator = log(evaluation['suffix'])(generic_evaluator)
generic_evaluator(evaluation['suffix'], evaluation['id'])
编辑
另外,这段代码可能会更清楚:
@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