如何知道是否传递了可选参数?

时间:2014-10-09 17:46:00

标签: python argparse

例如:

parser = argparse.ArgumentParser(description="")
parser.add_argument('k', help='k index', type=int)
parser.add_argument('j', help='j', type=int, nargs='?')

我需要知道是否给出了参数j。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

Namespace返回的parser.parse_args对象将j属性分配给提供的int(如果已提供),或None(如果没有提供。)

parser = argparse.ArgumentParser(description="")
parser.add_argument('k', help='k index', type=int)
parser.add_argument('j', help='j', type=int, nargs='?')
for inputs in (['5'], ['5', '2']):
    args = parser.parse_args(inputs)
    if args.j is not None:
       print("got a j")
    else:
       print("No j")

输出:

No j
got a j