【发布时间】:2016-12-24 17:48:50
【问题描述】:
我正在尝试根据属性列表中的位置分配多个参数属性。举个例子;
import argparse
import sys
def args_options:
parser = argparse.ArgumentParser()
parser.add_argument('-s', help='-s argument help', nargs=3)
parser.add_argument('-k', help='-k argument help', nargs=3)
arguments = parser.parse_args()
return arguments
def assign_arg():
args = args_options()
if args.s or args.k:
variable1 = args[1] # this is where I'm stuck as I know this won't work
variable2 = args[2] # ^
从上面,我正在尝试检查 arg.s 或 arg.k 是否为真,如果是,则将任一参数列表中的第二个和第三个属性分配给变量。
用python可以做到这一点吗?还是我需要这样做;
if arg.s:
variable1 = arg.s[1]
variable2 = arg.s[2]
elif arg.k:
variable1 = arg.k[1]
variable2 = arg.k[2]
上述方法可行,但我有很多选项/属性,因此代码可能会很长。想问是否有办法通过在多个参数选项列表中找到属性并将其分配给变量来更有效地做到这一点。
【问题讨论】:
-
您的选项不是互斥组,如果同时指定了
-s和-k会怎样? -
似乎
-s或-k的参数以相同的方式处理,将s/k 设为标志并单独处理参数不是更有意义吗?
标签: python namespaces argparse