我想要一个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
我该怎么做?
答案 0 :(得分:3)
您可以使用dest
添加属性的其他名称,例如
import argparse
p = argparse.ArgumentParser()
p.add_argument('--lambda', dest='llambda')
args = p.parse_args()
print args.llambda
答案 1 :(得分:1)
hasattr
使用getattr
和args.dest
在命名空间中设置值。这允许您使用getattr(args, 'lambda')
语法中无效的flags / dest。这里的问题是限制关键词。它也可以是带有特殊字符的字符串。所以vars(args)
应该有用。
vars(args)['lambda']
创建一个字典,允许您使用{{1}}。
但改变目标是一个更清洁的解决方案。这是为什么允许该参数的一部分。
(对于位置参数,请立即选择有效的目标。)