模块中的全局变量,多次写入后读取



我正在处理Django项目,但这个问题也可能是Python通用的。使用特定Django特性的答案也可以接受。

我试图将全局变量定义为模块中的dict。我要求这个变量可以被其他模块访问。困难的部分是,这个全局变量可以在构建时被无限多的其他模块多次设置/更新。在所有的设置/更新之后,可以读取变量以在固定数量的模块中设置一些其他全局变量。我应该如何确保所有读取都发生在设置/更新之后?

演示代码:

  1. 我想在模块msetting.py上有一个GLOB

在m/setting.py:

GLOB=dict()

  1. 其他一些模块(无限多,假设它们是pqr)将需要更新此变量:

在p/config.py:

从m.setting导入GLOB

GLOB['p']=1

在q/config.py:

从m.setting导入GLOB

GLOB['q']=2

在r/config.py:

从m.setting导入GLOB

GLOB['r']=3

  1. 两个模块(固定多个,假设它们是az)将需要从该变量中读取并执行其他操作:

在/config.py:

从m.setting导入GLOB

A_GLOB=[k表示GLOB中的k,如果GLOB[k]%2]

在z/config.py:

从m.setting导入GLOB

Z_GLOB=[k表示GLOB中的k,如果不是GLOB[k]%2]

对于上面的示例,我如何确保A_GLOG['p', 'r']Z_GLOB['q']

谢谢你的帮助!

所有允许与模数%有关的整数。模的结果不是布尔值,而是一个整数。所以你需要更具体一些。

A_GLOB = [k for k in GLOB if GLOB[k]%2 != 0] # 1%2 and 3%2 == 1
Z_GLOB = [k for k in GLOB if not GLOB[k]%2 == 0] # 2%2 == 0

相关内容

  • 没有找到相关文章

最新更新