【发布时间】:2015-10-26 07:23:14
【问题描述】:
我有一些文件定义了我想在文件之外使用的全局变量,例如“func.py”包含:
def init():
global a
a = 5
如果我通过“from x import *”导入,那么像这样访问模块的全局变量是行不通的:
from func import *
init()
a
func.a
因为a 和func 都没有定义。但是,“func”在 sys.modules.keys() 中列出。
我知道“from x import *”并不是最佳实践,但是在使用时如何访问模块的变量或模块对象?
【问题讨论】:
-
func.py 是一个完整的 python 脚本吗?在您的情况下,您需要在“init”之外声明“a”并使用“global”关键字在“init”中引用“a”。函数中的“全局”会告诉 python 在该函数的“外部”查找该变量。当使用'from ... import ...'时,预计'func'是未定义的。如果需要,请使用'import ...'
-
在这个例子中它只是一个函数的集合,但我想它是普遍适用的。
标签: python python-import