假设我有一个主模块app.py
,它定义了一个全局变量GLOBVAR = 123
。此外,该模块导入位于另一个模块foo
类bar
:Python:如何访问调用模块中的变量?
from foo import bar
在主模块app
我现在从类bar
调用一个方法。在该方法中,我想从主模块app
访问值GLOBVAR
。
一种简单的方法是简单地将GLOBVAR
作为参数传递给方法。但是Python中是否还有另一个解决方案,可以直接访问GLOBVAR
?
在模块foo
我尝试以下之一:
from app import GLOBVAR # option 1
import app.GLOBVAR # option 2
然而,这两个选项导致以下运行时错误:
ImportError: cannot import name bar
我明白这导致app
之间的循环进口和foo
。那么,在Python中是否有解决方案,还是必须将该值作为参数传递给函数?
这就是为什么Globals是邪恶的 – Ant 2013-05-05 17:37:35
@Ant:是的,我同意全球通常不是要走的路。但是,我也认为在某些情况下它们是可以的,尤其是原型。但我认为这将是另一个线程的讨论:) – Matthias 2013-05-05 17:40:30