在Beaker文档中,他们谈到不在createfunc调用中直接传递参数,而是使用闭包。
创建函数不能接受任何参数,因为它不会被任何参数调用。影响创建值的选项可以通过在创建函数上使用闭包范围传递:
我可以在闭包中找到的所有示例和文档都提示嵌入函数调用,第一个接收变量。在这种情况下,我不理解如何编写闭包,因为它不是函数,而是键值变量。
results = tmpl_cache.get(key=search_param, createfunc=get_results)
如何将variable_a
传递到get_results(variable_a)
中的createfunc
?
答案 0 :(得分:0)
喜欢这样,或类似?
get_results_func
返回一个函数指针,因为它在闭包中会正确调用get_results
。
def get_results_func(variable_a):
def call_get_results():
return get_results(variable_a)
return call_get_results # note the absence of brackets here.
results = tmpl_cache.get(key=search_param, createfunc=get_results_func(variable_a))