2014-06-17 148 views
0

我需要從其他模塊訪問主模塊中導入的模塊範圍的變量。如何訪問主模塊調用的模塊範圍的變量?

在我的應用程序中,我在同一個目錄中有一些模塊。其中一個模塊是使用configparser讀取config_file.ini的模塊,以加載使用其他模塊的配置變量。

我不想導入多於一次的管理config_file.ini的模塊,以避免兩次打開同一文件的問題。

我沒有在管理config_file.ini(只有一個函數來更新文件)但不加載變量的模塊中使用函數或分類。

圖形概念:

Module_A:

# !usr/bin/python3 
# -*- coding: UTF-8 -*- 
import module_B 
import module_C 
print(module_B.my_var) 
print(module_C.my_var) 

Module_B:

# !usr/bin/python3 
# -*- coding: UTF-8 -*- 
my_var = "This is the Module B" 

Module_C:

# !usr/bin/python3 
# -*- coding: UTF-8 -*- 
my_var = "This is the Module C" 
print(module_B.my_var) 

我使用Python3.x

我應該將它們封裝在單獨的類中嗎?我不是在OOP經歷:-(

回答

0

模塊僅加載一次;後續進口重用已經導入模塊

換句話說,只需加載config.ini你在一個模塊中,然後再導入從該模塊爲其他變量

+0

但是,如何在它上面的例子中拋出異常的Module_C:?NameError:名字' 'module_B'未定義' – Trimax

+0

@Trimax:但那只是因爲'Module_C'如果它需要訪問'Module_B'就應該導入'Module_B'。這與加載'config.ini'文件無關。 –

0

如果您要訪問Module_B.my_var在Module_C,你Module_C需要import Module_B