外の変数を抽出します。Pythonの:私はコマンドライン引数を解析するpythonでargparseを使用している名前空間
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
は、今私はa
、b
、およびc
でいくつかの計算をしたいです。しかし、私はいつもargs.a + args.b + args.c
と書くのは面倒です。
したがって、私はこれらの変数を抽出している:私はa + b + c
を書くことができます
a, b, c = [args.a, args.b, args.c]
このようなことを。
もっとエレガントな方法がありますか?
多くの引数を追加すると、手動抽出が非常に面倒でエラーが発生しやすくなります。
答えをありがとう。 それは動作しますが、 'exec '"部分は非常に醜いハックのように感じます。それはなぜ必要なのですか? – Lemming
訂正:関数に入れ子関数が含まれていると機能しません。この場合、次のエラーメッセージが表示されます。 'exec" " SyntaxError:正規化されていないexecが関数 'main'に許可されていません。空変数 ' – Lemming
Ickを持つネストされた関数が含まれています。私はそれを知らなかったが、理にかなっている。クロージャーにはPythonの標準ローカル変数機構が必要です。これはローカルでインデックスにアクセスします。関数のどこでも 'exec'文を使うと、' exec'がローカルを定義したり修正したりすることができるため、Pythonは地方自治体に名前でアクセスする代わりの方法を使用します(exec()の場合は 'locals 'は関数内で見られますが、そうでない場合はありません)。 – kindall