2013-02-18 8 views
7

まず、機能の割り当てが正しいことを理解しておきたい。スレッド内のモジュール(パッケージ)を介して変数(オブジェクト)を共有するために割り当てられたローカルプロキシ機能。私は正しい?Werkzeugのスレッドとローカルプロキシ。使い方

私は、割り当てが誤解されているため、使用方法がまだわかりません。私はフラスコを使う。 2つ(またはそれ以上)のモジュールがある場合:A、B.オブジェクトCをモジュールAからモジュールBにインポートしたいのですが、普通の方法ではできません。from A import C ImportError。 Werkzeugローカルプロキシでこの問題を解決するには? Werkzeugと一緒にやるべきですか?

モジュールA:

from werkzeug.local import LocalSomething # LocalProxy or LocalStack 

C = 'C' 
# Somehow add C to LocalSomething 

モジュールB:

from werkzeug.locla import LocalSomething 

C = LocalSomething()['C'] 
+0

ここにインポートループはありません – mderk

+0

質問トピックに該当しないため、すべての状況を表示したくありません。それがインポートループを持っていると想像してください。 – I159

+0

モジュールのどこかに 'Local'インスタンスを置いて、あなたのプロセス/スレッド/グリーンレット内の任意の場所にその属性に書き込み/読み取りする必要があります。しかし、あなたは最初にそのインスタンスをインポートすることができる必要があります – mderk

答えて

6

モジュールZ:

from werkzeug.local import Local 
myLocals = Local() 

モジュールA:

from Z import myLocals 
myLocals.C = "C" 

モジュールB:

from Z import myLocals 
C = getattr(myLocals, "C", None) 

これはあなたが探しているものですか?

+0

ああ、ありがとう! – I159

関連する問題