可变变量变量:werkzeug LocalProxy

时间:2013-06-04 13:34:10

标签: python variables flask werkzeug

我正在尝试从不同的标签设置werkzeug LocalProxy。

迄今为止我能做的最好的事情是:

for tag in self.filters.iterkeys():
    c = "{}_context".format(tag)
    setattr(self, c, LocalProxy(lambda: getattr(_request_ctx_stack.top.g,
                                                tag,
                                                None)))

如果在g(g.x)上设置了属性x,my_instance.x将返回g.x

但我真正想做的是将上面的c格式化为返回本地代理,而不是通过my_instance挖掘

x_context = LocalProxy(lambda: g.x)

而不是我现在可以做的事情:

my_instance.x_context = LocalProxy(lambda: g.x)

仅来自我可能需要为x_context返回g.x的列表,g.y用于y_context等。

这样做的:

c = LocalProxy(lambda: getattr(_request_ctx_stack.top.g, tag, None))

以上不起作用。

现在,当我写出来时,它的声音更加复杂,而我现在还没有把握它,所以让我知道有什么澄清。

编辑:

对于好奇的人来说,这是来自的地方:

https://github.com/thrisp/flarf/blob/master/flask_flarf/flarf.py

0 个答案:

没有答案