在 Python 中跨多个模块使用和修改全局变量

Using and modifying global variables across multiple modules in Python

Python 是我最新的语言 (Python-2.6),我的背景是 C/C++。通常,我会创建一个全局变量并能够在我的所有文件中修改和访问它。我正在尝试在 python 中实现相同的功能。

基于此 post:Python - Visibility of global variables in imported modules 我看到 "Globals in Python are global to a module, not across all modules"。我有多个依赖于用户输入的变量,必须由四个不同的模块和主代码访问和修改,这就是为什么我试图在 Python 中使用全局(ish)变量。

我有两次尝试来完成这项工作:

1) 如果我在主代码中使用可修改的全局变量粘贴代码,我 运行 进入 "Executing the Main Module Twice" 的问题,详见此处:http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html 程序运行,除了被执行两次。

2) 如果我创建一个单独的模块并将变量放入一个函数中,我发现我的其他模块中有未定义的变量并且我的代码会出错。通过单步执行代码,我看到当模块 A 的变量为 accessible/modifiable 时,但是当模块 B 和模块 C 尝试使用它们时一切都中断了,因为修改没有保留。

如何利用 Python 来满足我的需要?我相信我的问题在于尝试使用全局变量并导入全局变量

为了解决这个问题,我停止尝试在我的主代码中跨多个模块使用全局变量,并停止导入单个变量。我基本上最终将模块 A(单个函数)放置在模块 B 中。我在 moduleB 中为我需要的功能创建了一个 class。主代码和 moduleC 现在访问这些函数。

尽管如此,我仍然在 moduleB 的函数中使用全局变量。如果我将变量设置为非全局变量,则会出现属性错误。