什么使可选参数成为可选参数和位置参数是必要的?

时间:2014-12-03 02:01:10

标签: python argparse

试图找到这个问题的答案,但无法在任何地方找到答案。

我正在学习本教程:https://docs.python.org/3/howto/argparse.html我理解位置参数和可选参数之间的区别,但我不明白argparse是如何决定什么参数是位置的什么参数是可选的?

因此,例如,从我上面链接的教程:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
                    help="display a square of a given number")
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2],
                    help="increase output verbosity")
args = parser.parse_args()
answer = args.square**2
if args.verbosity == 2:
    print("the square of {} equals {}".format(args.square, answer))
elif args.verbosity == 1:
    print("{}^2 == {}".format(args.square, answer))
else:
    print(answer)

为什么" square"论证位置和" - 冗长"参数可选吗?

1 个答案:

答案 0 :(得分:4)

prefix_chars(默认为-),将参数定义为标志,因此是可选的。如果prefix_chars不存在,则确定其为位置。

可以在解析器实例化prefix_chars

上设置parser = argparse.ArgumentParser(prog='PROG', prefix_chars='-+')

请参阅' name or flags'在文档中。

https://docs.python.org/3/library/argparse.html#name-or-flags