如何以编程方式设置全局(模块)变量?

14 浏览
0 Comments

如何以编程方式设置全局(模块)变量?

我希望以一种"编程"的方式定义全局变量。类似于我想要做的是:

definitions = {'a': 1, 'b': 2, 'c': 123.4}
for definition in definitions.items():
    exec("%s = %r" % definition)  # a = 1, etc.

具体来说,我想创建一个名为`fundamentalconstants`的模块,其中包含可以通过`fundamentalconstants.electron_mass`等方式访问的变量,所有的值都是通过解析文件获得的(因此需要以"编程"的方式进行赋值)。

现在,上述的`exec`解决方案可以工作。但我对它有些不安,因为我担心`exec`不是设置模块全局变量的最佳方法。

0