0

在 Beaker 文档中,他们谈到不直接在 createfunc 调用中传递参数,而是使用闭包。

创建函数不能接受任何参数,因为它不会被任何参数调用。可以通过在创建函数上使用闭包范围来传递影响创建值的选项:

我可以在闭包提示中找到所有示例和文档,其中包含第一个变量调用的嵌套函数调用。在这种情况下,我不明白如何编写闭包,因为它不是函数而是键值变量。

results = tmpl_cache.get(key=search_param, createfunc=get_results)

我将如何variable_a进入?get_results(variable_a)createfunc

4

1 回答 1

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))
于 2016-04-06T22:40:52.597 回答