2013-02-18 23 views
7

İlk başta, özelliğin doğru bir şekilde atanmasını anladığımdan emin olmak istiyorum. Bir iş parçacığı içindeki modüller (paketler) aracılığıyla bir değişkenleri (nesneleri) paylaşmaya atanan yerel proxy işlevselliği. Ben haklı mıyım İkinci olarak, kullanım hala benim için açık değil, belki bir görevi yanlış anlamış olduğum için. Şişeyi kullanıyorum. İki (veya daha fazla) modüllerim varsa: A, B. C nesnesini C modülünden B modülüne almak istiyorum. Ancak, her zamanki gibi yapamam, from A import C ImportError. Werkzeug Yerel Proxy ile bu sorunu nasıl çözebilirim? Ve Werkzeug ile yapmalı mıyım?Konular ve yerel proxy. Kullanımı

modül A:

from werkzeug.local import LocalSomething # LocalProxy or LocalStack 

C = 'C' 
# Somehow add C to LocalSomething 

modül B:

from werkzeug.locla import LocalSomething 

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

Burada bir içe aktarma döngüsü göremiyor – mderk

+0

Tüm durumu göstermek istemiyorum çünkü bu konuya uygulanmaz. Lütfen sadece içe aktarma döngüsünün olduğunu hayal edin. – I159

+0

Bir "Yerel" örneği bir modülde bir yere yerleştirmeniz ve/thread/greenlet'inizdeki herhangi bir yerindeki özniteliklere yazma/okuma yapmanız gerekir. Ama bu örneği ilk etapta – mderk

cevap

6

Modül ve Z:

from werkzeug.local import Local 
myLocals = Local() 

modül A:

from Z import myLocals 
myLocals.C = "C" 

B modülü:

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

bu nedir?

+0

Yep'e aktarmanız gerekiyor, çok teşekkürler! – I159

İlgili konular