さまざまなタグから 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 (gx) に属性 x が設定されている場合、my_instance.x は gx を返します。
しかし、私が本当にやりたいことは、上記の c をフォーマットして、my_instance を掘り下げずにローカル プロキシを返すことです。
x_context = LocalProxy(lambda: g.x)
私が今できることの代わりに:
my_instance.x_context = LocalProxy(lambda: g.x)
x_context の場合は gx、y_context の場合は gy などを返す必要があるリストからのみです。
やっている:
c = LocalProxy(lambda: getattr(_request_ctx_stack.top.g, tag, None))
上記は機能しません。
私がこれを書いている今、それはさらに複雑に聞こえます.
編集:
好奇心旺盛な人のために、これがどこから来たかのコンテキストは次のとおりです。
https://github.com/thrisp/flarf/blob/master/flask_flarf/flarf.py