Lem*_*ing 8 python command-line-arguments argparse
我在python中使用argparse来解析命令行参数:
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
现在我想要做一些计算用a,b和c.但是,我发现一直写的很烦人args.a + args.b + args.c.
因此,我正在提取这些变量:
a, b, c = [args.a, args.b, args.c]
Run Code Online (Sandbox Code Playgroud)
这样我就可以写了a + b + c.
有更优雅的方式吗?
添加许多参数时,手动提取变得非常繁琐且容易出错.
如果你想要它们作为全局变量,你可以这样做:
globals().update(vars(args))
Run Code Online (Sandbox Code Playgroud)
如果您在函数中并希望它们作为该函数的局部变量,则可以在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.
Run Code Online (Sandbox Code Playgroud)
这个技巧在Python 3中不起作用,exec它不是一个声明,也不适用于其他Python变体,如Jython或IronPython.
但总的来说,我建议只使用较短的名称作为args对象,或使用剪贴板.:-)
| 归档时间: |
|
| 查看次数: |
4646 次 |
| 最近记录: |