Python argparse参数是python关键字

时间:2017-02-25 13:59:15

标签: python-2.7 argparse

我想要一个python命令行参数--lambda,但我无法访问它,因为lambda是一个python关键字。

import argparse

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

print args.lambda

我明白了:

print args.lambda
                ^
SyntaxError: invalid syntax

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用dest添加属性的其他名称,例如

import argparse

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

print args.llambda

答案 1 :(得分:1)

hasattr使用getattrargs.dest在命名空间中设置值。这允许您使用getattr(args, 'lambda')语法中无效的flags / dest。这里的问题是限制关键词。它也可以是带有特殊字符的字符串。所以vars(args)应该有用。

vars(args)['lambda']创建一个字典,允许您使用{{1}}。

但改变目标是一个更清洁的解决方案。这是为什么允许该参数的一部分。

(对于位置参数,请立即选择有效的目标。)