我有一个 python 项目,其中很少有由 .sh shell 文件运行的脚本。
我有一个配置文件,它定义了要跨脚本使用的字典。
配置文件
name_dict = dict()
文件1.py
from config import *
..
..
## I have that reads tries to load the dump file that will contain the json values.
name_dict = json.load(open(dict_file))
##This file - file1.py calls another function fun() in file2.py, iteratively 3/4 times.
..
file2.fun(args)
print "Length of dict in file1.py : %d " %len(name_dict) // Always Zero ??? Considers name_dict as local variable.
在 file2 - file2.py中,我使用全局关键字定义了 name_dict。fun() 使用并更新了 name_dict,最后我在开始时打印了 dict 的长度,我发现它要更新了。
def fun(args)
global name_dict
print "Length of dict file2.py(start): %d " %len(name_dict)
..
..
print "Length of dict file2.py(end): %d " %len(name_dict)
每次控件从file2返回后,在file1.py中我打印name_dict的值,它为零。但是,在下一次调用 fun() -> print 语句仍然打印 name_dict() 的全局值(长度)
但在 file1.py 中它始终为零。我的猜测是它被视为局部变量。我该如何解决 ?