我正在编写一个Python程序,其中主脚本使用命令行,配置文件等中的公共数据初始化多个变量。我希望程序的其余部分能够以全局变量访问它们:< / p>
def abc() :
global xyz
_someOptionValue = xyz['someOptionName']
...
它不起作用。我认为这是因为全局在main.py
中定义(例如),引用它的函数在abc.py
中定义(例如)。因此,函数的全局命名空间与主脚本的命名空间不同。
我认为我应该能够通过使用主脚本命名空间的名称限定其名称来获取全局变量,但该命名空间的名称是什么?
上下文: 我目前将这些变量作为参数传递,我知道许多程序员认为这是一个更清晰的解决方案。在这种情况下,我不会因为变量设置一次,然后在整个程序中读取。根据我的判断,这是使用全局变量的最强可能案例(也是唯一合理的案例)。如果您认为我不应该这样做,我尊重您的意见,但我不赞同;请尊重我的!
答案 0 :(得分:2)
创建一个包含所有共享信息的globals
模块,并让每个模块(包括main)导入该模块。