【发布时间】:2015-09-08 17:55:16
【问题描述】:
Python 是我最新的语言 (Python-2.6),我的背景是 C/C++。通常,我会创建一个全局变量,并能够在我的所有文件中修改和访问它。我正在尝试在 python 中实现相同的功能。
根据这篇文章:Python - Visibility of global variables in imported modules 我看到“Python 中的全局变量对于一个模块来说是全局的,而不是跨所有模块”。我有多个依赖于用户输入的变量,必须由四个不同的模块和主代码访问和修改,这就是我尝试在 Python 中使用全局(ish)变量的原因。
我有两个尝试来完成这项工作:
1) 如果我将代码与可修改的全局变量粘贴在我的主代码中,我会遇到“执行主模块两次”的问题,详情如下:http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html 该程序工作正常,除了被执行两次。
2) 如果我创建一个单独的模块并将变量放入一个函数中,我发现我的其他模块中有未定义的变量,我的代码会出错。从单步执行代码中,我看到当模块A可以访问/修改变量时,但是当模块B和模块C尝试使用它们时一切都会中断,因为修改没有保留。
如何利用 Python 来满足我的需求?我相信我的问题在于尝试使用全局变量和导入全局变量
【问题讨论】:
-
我相信使用
import module,然后使用module.variable = 42之类的语句,而不是from module import variable,可以用于跨模块共享变量。
标签: import scope global-variables global python-2.6