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

时间:2017-10-29 20:16:37

标签: django python-3.x global-variables

我正在研究Django项目,但这个问题也可能是Python泛型。也可以接受使用特定Django功能的答案。

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

演示代码:

  1. 我想GLOB setting.py模块m
  2. 在m / setting.py:

      

    GLOB = dict()

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

        

      来自m.setting import GLOB

           

      GLOB [' p'] = 1

      在q / config.py:

        

      来自m.setting import GLOB

           

      GLOB [' q'] = 2

      在r / config.py:

        

      来自m.setting import GLOB

           

      GLOB [' r'] = 3

      1. 两个模块(固定很多,假设它们是az)需要读取此变量并执行其他操作:
      2. 在/ config.py:

          

        来自m.setting import GLOB

             

        A_GLOB = [如果GLOB [k]%2],则GLOB中的k为k

        在z / config.py:

          

        来自m.setting import GLOB

             

        Z_GLOB = [如果不是GLOB [k]%2,则GL中的k为k]

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

        感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

所有允许使用模数%的整数。模数的结果不是布尔值,也是整数。所以你需要更具体。

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