--option 和 nargs='?' 有什么区别?在 Python 的 argparse 模块中?
What's the difference between --option and nargs='?' in Python's argparse module?
阅读了有关 argparse 的文档后,我很难看出最后两行代码之间的区别:
parser = argparse.ArgumentParser()
parser.add_argument('--option')
parser.add_argument('option', nargs='?')
两者都指定了可以传递给解析器的可选参数,但为什么要使用一个而不是另一个呢?
任何以 -
和 --
开头的参数都可以按任何顺序使用(如 **kwargs
),而没有破折号前缀的参数称为位置参数(如*args
).
必须按照定义的顺序提供位置参数。使用 nargs='?'
的一个很好的例子是提供一种将脚本结果重定向到文件的方法。您将最后一个参数指定为可选的目标文件,如果未提供该选项,则输出将简单地写入 stdout.
从约定的角度来看,您可以将前缀参数视为可选标志,而位置参数是必需的。
阅读了有关 argparse 的文档后,我很难看出最后两行代码之间的区别:
parser = argparse.ArgumentParser()
parser.add_argument('--option')
parser.add_argument('option', nargs='?')
两者都指定了可以传递给解析器的可选参数,但为什么要使用一个而不是另一个呢?
任何以 -
和 --
开头的参数都可以按任何顺序使用(如 **kwargs
),而没有破折号前缀的参数称为位置参数(如*args
).
必须按照定义的顺序提供位置参数。使用 nargs='?'
的一个很好的例子是提供一种将脚本结果重定向到文件的方法。您将最后一个参数指定为可选的目标文件,如果未提供该选项,则输出将简单地写入 stdout.
从约定的角度来看,您可以将前缀参数视为可选标志,而位置参数是必需的。