我在 python 中使用 argparse 来解析命令行参数:
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
现在我想做一些计算a
, b
, and c
。不过我觉得写起来很累args.a + args.b + args.c
每时每刻。
因此,我正在提取这些变量:
a, b, c = [args.a, args.b, args.c]
这样我就可以写a + b + c
.
有更优雅的方法吗?
添加许多参数时,手动提取会变得非常乏味且容易出错。
如果你希望它们作为全局变量,你可以这样做:
globals().update(vars(args))
如果您在一个函数中并希望它们作为该函数的局部变量,您可以在 Python 2.x 中执行此操作,如下所示:
def foo(args):
locals().update(vars(args))
print a, b, c
return
exec "" # forces Python to use a dict for all local vars
# does not need to ever be executed! but assigning
# to locals() won't work otherwise.
这个技巧在 Python 3 中不起作用,其中exec
不是一个语句,在其他 Python 变体(例如 Jython 或 IronPython)中也不可能。
但总的来说,我建议只使用较短的名称args
对象,或使用剪贴板。 :-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)