假設我有一個主模塊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