2017-02-25 118 views
1

我想要一個python命令行參數--lambda,但我無法訪問它,因爲lambda是一個python關鍵字。Python argparse的參數是python關鍵字

import argparse 

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

print args.lambda 

我得到:

print args.lambda 
       ^
SyntaxError: invalid syntax 

我怎樣才能做到這一點?

回答

2

您可以爲屬性添加不同的名稱,例如dest

import argparse 

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

print args.llambda 
1

​​hasattr使用和getattr在命名空間來設定的值。這使您可以使用在args.dest語法中無效的標誌/ dest。這裏的問題是關鍵詞受限制。它也可以是一個帶有特殊字符的字符串。所以getattr(args, 'lambda')應該工作。

vars(args)創建字典,允許您使用vars(args)['lambda']

但改變目標是一個更清潔的解決方案。這是允許該參數的部分原因。

(對於位置參數,請立即選擇有效的目標)。