モジュールからのグローバル変数の設定:
私のバージョンの argparse を単純化するために、名前の重複を最小限に抑え、大文字と小文字を区別しない複数の文字フラグをサポートしながら、大文字と小文字が混在するフラグを使用してグローバル変数を設定するために、似たようなことを試みました。私が思いついた唯一の解決策は、実行できるステートメントリストを返すことでした。モジュール内で実行しようとしてもうまくいきませんでした。私の例:
セルフテスト
def main():
print "Some tests with provided args"
One = 1
Two = 2
Three = 3
prs = ArgumentParserCI(description='process cmdline args')
prs.add_argument('One')
prs.add_argument('Three')
cmdlineargs = ['-one', 'one', '--thr', "III"]
argsdict, unknownargs, execlist = prs.parse_args(cmdlineargs)
exec(execlist)
print("cmdlineargs:", cmdlineargs)
print (One, Two, Three)
if __name__ == "__main__":
main()
プリントアウト:
Some tests with provided args
('cmdlineargs:', ['-one', 'one', '--thr', 'III'])
('one', 2, 'III')