2016-07-28 124 views
0

我有一个主文件和数百个导入到主文件中的子文件。另外,我在main.py文件中定义了全局字典。在多个python文件中使用全局变量

# ../myproject/main.py 
import sub1.py 
import sub2.py 

global dict_test={} 

dict_test["fruit"]="apple" 

我怎样才能在我的sub1.py,sub2.py文件中使用这个dict_test字典?

+0

为什么不把字典放在一个模块(比如''globalvars.py'')中,并直接从它导入? – NuclearPeon

+0

我不想添加任何其他模块,是否有任何解决方法使用sub1.py中的dict_test? –

+0

@gokulchand是的,主要你可以从一个子模块中调用一个函数作为参数。在这个函数中,你可以访问这个'全局'字典。 – mhoff

回答

0

你不能直接这样做,因为它会导致一个循环输入,其中main导入sub1sub1main导入字典。

前进的方向是通过引入包含共享资源的第三个模块来打破依赖关系。

`constanst.py` 
============== 
dict_test = {} 
dict_test["fruit"] = "apple" 

main.py 
======= 
from constants import dict_test 

sub1.py 
======= 
from constants import dict_test