6

首先,我想确保我理解功能的分配是正确的。分配给通过线程内的模块(包)共享变量(对象)的本地代理功能。我对吗?

其次,我的用法仍然不清楚,可能是因为我误解了一个作业。我使用烧瓶。如果我有两个(或更多)模块: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']
4

1 回答 1

7

模块 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)

这是你要找的吗?

于 2013-02-18T12:01:25.870 回答