Python 2.7 Python argparse参数,即Python关键字

Python 2.7 Python argparse参数,即Python关键字,python-2.7,argparse,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 如何执行此操作?您可以使

我想要一个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

如何执行此操作?

您可以使用
dest
为属性添加不同的名称,例如

import argparse

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

print args.llambda

argparse
使用
hasattr
getattr
设置命名空间中的值。这允许您使用在
args.dest
语法中无效的标志/dest。这里的问题是一个受限的关键字。它也可以是带有特殊字符的字符串。因此
getattr(args,'lambda')
应该可以工作

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

但改变dest是一个更干净的解决方案。这就是为什么允许使用该参数的部分原因

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