私はmain.py
ファイルにを使って引数を解析しました。 global_vars.py
ファイルに定義されているいくつかの変数があり、このファイルはmain.py
と他のファイルに含まれています。argparseによって解析された引数は他のファイルではアクセスできません
グローバル変数に解析済みの引数を割り当てていますが、main.py
以外のファイルでこれらのグローバル変数にアクセスしようとすると、None
が返されます。私が紛失しているものはありますか、それともの名前空間の問題ですか?
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Accept arguments')
parser.add_argument('-n', help='enter period for which you want to do the sampling')
parser.add_argument('-b', help='enter directory for bhav copy')
parser.add_argument('-d', help='enter directory for deliverables')
parser.add_argument('-l', help='enter list type')
args = parser.parse_args(namespace=None)
var_dict = vars(args)
bhavcopy_dir=var_dict['b']
deli_dir=var_dict['d']
no_of_sessions=var_dict['n']
list_type=var_dict['l']
グローバルステートを使用しようとするのではなく、適切な引数を使用してエントリポイント関数を呼び出すことをおすすめします。これがある文脈の詳細をいくつか表示できますか? – jonrsharpe
他のファイルからこれらの変数にどのようにアクセスしようとしているかを示す必要があります。引数の解析が行われる前に、他のファイルが実行されている可能性があります。 – arghbleargh
'bhavcopy_dir = args.b'は' vars_dict'変換なしで動作します。 (これはあなたがより大きな質問に変わるわけではない) – hpaulj