【问题标题】:What's the difference between --option and nargs='?' in Python's argparse module?--option 和 nargs=' 之间有什么区别?在 Python 的 argparse 模块中?
【发布时间】:2019-11-11 21:56:23
【问题描述】:

阅读了关于 argparse 的文档后,我很难看出最后两行代码之间的区别:

parser = argparse.ArgumentParser()
parser.add_argument('--option')
parser.add_argument('option', nargs='?')

两者都指定了可以传递给解析器的可选参数,但为什么要使用一个而不是另一个呢?

【问题讨论】:

  • 如果您想节省输入,请使用位置版本,如果您想要更健壮的输入,请使用标记版本。

标签: python arguments argparse optional-arguments


【解决方案1】:

任何以--- 开头的参数都可以按任何顺序使用(如**kwargs),而没有破折号前缀的参数称为位置参数(如*args)。

位置参数必须按照定义的顺序提供。使用nargs='?' 的一个很好的例子是提供一种将脚本结果重定向到文件的方法。您将最后一个参数指定为可选的目标文件,如果未提供该选项,则输出将简单地写入 stdout

从约定的角度来看,您可以将前缀参数视为可选标志,而位置参数是必需的。

【讨论】:

    猜你喜欢
    • 2014-01-03
    • 2011-12-18
    • 2017-03-18
    • 2016-07-08
    • 2019-09-13
    • 2018-06-29
    • 2019-09-04
    • 2011-03-01
    • 2010-10-17
    相关资源
    最近更新 更多