试图找到这个问题的答案,但无法在任何地方找到答案。
我正在学习本教程: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"论证位置和" - 冗长"参数可选吗?
答案 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