Eri*_*got 35 python module global-variables
我想以"程序化"的方式定义全局变量.类似于我想做的事情将是:
definitions = {'a': 1, 'b': 2, 'c': 123.4}
for definition in definitions.items():
exec("%s = %r" % definition) # a = 1, etc.
Run Code Online (Sandbox Code Playgroud)
具体来说,我想创建一个fundamentalconstants包含可以作为fundamentalconstants.electron_mass等访问的变量的模块,其中所有值都是通过解析文件获得的(因此需要以"编程"方式进行分配).
现在,exec上面的解决方案将起作用.但我对它有点不安,因为我担心这exec不是实现设置模块全局变量目标的最简洁方法.
Nad*_*mli 58
这是一个更好的方法:
import sys
definitions = {'a': 1, 'b': 2, 'c': 123.4}
module = sys.modules[__name__]
for name, value in definitions.iteritems():
setattr(module, name, value)
Run Code Online (Sandbox Code Playgroud)
Ned*_*der 41
您可以在globals()返回的字典中设置全局变量:
definitions = {'a': 1, 'b': 2, 'c': 123.4}
for name, value in definitions.items():
globals()[name] = value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20147 次 |
| 最近记录: |