2013-02-18 20 views
7

In un primo momento desidero accertarmi di aver compreso correttamente l'assegnazione della funzione. La funzionalità proxy locale assegnata per condividere variabili (oggetti) tramite moduli (pacchetti) all'interno di un thread. Ho ragione?Thread e proxy locale in Werkzeug. Uso

In secondo luogo, l'utilizzo non è ancora chiaro per me, forse perché ho frainteso un incarico. Io uso Flask. Se ho due (o più) moduli: A, B. Voglio importare l'oggetto C dal modulo A al modulo B. Ma non posso farlo nel solito modo, from A import C, perché causerà un'importazione in loop e in seguito ImportError. Come risolvere questo problema con il proxy locale di Werkzeug? E dovrei farlo con Werkzeug?

modulo

A:

from werkzeug.local import LocalSomething # LocalProxy or LocalStack 

C = 'C' 
# Somehow add C to LocalSomething 

modulo B:

from werkzeug.locla import LocalSomething 

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

non vedo un ciclo di importazione qui – mderk

+0

Non voglio mostrare tutta la situazione perché non si applica all'argomento della domanda. Per favore, immagina che abbia un ciclo di importazione. – I159

+0

è necessario posizionare un'istanza 'Local' da qualche parte in un modulo e scrivere/leggere/dagli attributi in qualsiasi punto del processo/thread/greenlet. Ma devi essere in grado di importare quell'istanza in primo luogo – mderk

risposta

6

Modulo Z:

from werkzeug.local import Local 
myLocals = Local() 

modulo A:

from Z import myLocals 
myLocals.C = "C" 

modulo B:

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

è questo che stai cercando?

+0

Sì, grazie mille! – I159

Problemi correlati