2017-02-25 14 views
1

Pythonコマンドライン引数--lambdaが必要ですが、lambdaはpythonキーワードであるため、アクセスできません。PythonキーワードのPython argparse引数

import argparse 

p = argparse.ArgumentParser() 
p.add_argument('--lambda') 
args = p.parse_args() 

print args.lambda 

私が取得:

print args.lambda 
       ^
SyntaxError: invalid syntax 

私はこれをどのように行うことができますか?

答えて

2

属性に別の名前を追加することができます。などです。

import argparse 

p = argparse.ArgumentParser() 
p.add_argument('--lambda', dest='llambda') 
args = p.parse_args() 

print args.llambda 
1

​​ネームスペースに値を設定するhasattrgetattrを使用します。これにより、args.dest構文で無効なフラグ/ destを使用できます。ここで問題は制限されたキーワードである。また、特殊文字を含む文字列にすることもできます。だからgetattr(args, 'lambda')がうまくいくはずです。

vars(args)vars(args)['lambda']を使用できるように辞書を作成します。

ただし、destを変更することはよりクリーンな解決策です。これは、そのパラメータが許可される理由の一部です。

(有効なdestをすぐに選択してください)

関連する問題