.sh シェル ファイルによって実行されるスクリプトがほとんどない Python プロジェクトがあります。
スクリプト間で使用される辞書を定義する構成ファイルがあります。
config.py
name_dict = dict()
file1.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 では常にゼロです。私の推測では、それはローカル変数として扱われます。これを修正するにはどうすればよいですか?