3

さまざまなタグから 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

4

0 に答える 0