2015-04-22 38 views
3

我正在写一个Python程序,其中主脚本用命令行,配置文件等常见数据初始化几个变量。我希望程序的其余部分能够以全局模式访问它们:在Python中,从另一个模块主要定义的访问变量

def abc() : 
    global xyz 
    _someOptionValue = xyz['someOptionName'] 
    ... 

它不起作用。我认为这是因为全局定义在main.py(例如)中,并且引用它的函数在abc.py(例如)中定义。因此,该函数的全局名称空间与主脚本的名称空间不同。

我想我应该能够通过使用主脚本名称空间的名称来限定其全局变量,但该名称空间的名称是什么?

上下文:我目前通过这些变量作为参数,我知道很多程序员认为这是一个更清洁的解决方案。在这种情况下,我不会因为变量被设置一次,然后在整个程序中被读取。在我看来,这是使用全局变量的最强烈的情况(也是唯一合理的情况)。如果你认为我不应该这样做,我尊重你的意见,但我不同意;请尊重我的!

+0

包含全局的主脚本的名称是什么? –

+0

你读过http://stackoverflow.com/q/142545/3001761? – jonrsharpe

回答

2

创建一个包含所有共享信息的globals模块,并让每个模块(包括main)导入该模块。

+0

谢谢,这是最清楚的答案。我能够从stackoverflow.com/q/142545/3001761?中的答案中推导出同样的东西,但需要填写一些内容。 –

相关问题