【问题标题】:In Python, access variable defined in main from another module在 Python 中,从另一个模块访问 main 中定义的变量
【发布时间】:2015-04-22 16:00:51
【问题描述】:

我正在编写一个 Python 程序,其中主脚本使用来自命令行、配置文件等的公共数据初始化几个变量。我希望程序的其余部分能够作为全局变量访问它们:

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

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

我想我应该能够通过用主脚本的命名空间的名称来限定它的名称来获取全局变量,但是那个命名空间的名称是什么?

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

【问题讨论】:

标签: python global-variables


【解决方案1】:

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

【讨论】:

  • 谢谢,这是最清楚的答案。我能够从 stackoverflow.com/q/142545/3001761? 中的一个答案中推断出同样的事情?但需要填写一些内容。
猜你喜欢
  • 2020-12-30
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
相关资源
最近更新 更多