当前位置: 首页 > 面试题库 >

Argparse:在“ --help”中包括默认值的方法吗?

廉雅惠
2023-03-14
问题内容

假设我有以下argparse代码段:

diags.cmdln_parser.add_argument( '--scan-time',
                     action  = 'store',
                     nargs   = '?',
                     type    = int,
                     default = 5,
                     help    = "Wait SCAN-TIME seconds between status checks.")

当前,--help返回:

usage: connection_check.py [-h]
                             [--version] [--scan-time [SCAN_TIME]]

          Test the reliability/uptime of a connection.



optional arguments:
-h, --help            show this help message and exit
--version             show program's version number and exit
--scan-time [SCAN_TIME]
                    Wait SCAN-TIME seconds between status checks.

我更喜欢这样的东西:

--scan-time [SCAN_TIME]
                    Wait SCAN-TIME seconds between status checks.
                    (Default = 5)

偷看帮助格式化程序代码,发现选择有限。是否有一种聪明的方法可以argparse--scan- time类似的方式打印默认值,还是我应该只是help格式化程序的子类?


问题答案:

使用argparse.ArgumentDefaultsHelpFormatter格式化程序:

parser = argparse.ArgumentParser(
    # ... other options ...
    formatter_class=argparse.ArgumentDefaultsHelpFormatter)

引用文档:

另一个可用的格式化程序类ArgumentDefaultsHelpFormatter,将添加有关每个参数的默认值的信息。

注意, 这仅适用于已定义帮助文本的参数 ;如果没有help参数值,则没有帮助消息将有关默认值的信息添加 到中

然后,您的扫描时间选项的确切输出将变为:

  --scan-time [SCAN_TIME]
                        Wait SCAN-TIME seconds between status checks.
                        (default: 5)


 类似资料:
  • 问题内容: 我想有一个可选参数,如果仅存在未指定值的标志,则默认为一个值,但是存储用户指定的值,而不是如果用户指定一个值,则存储默认值。是否已经有可用于此的措施? 一个例子: 我可以创建一个动作,但想查看是否存在执行此操作的方法。 问题答案: 表示0或1参数 当参数为0时设置默认值 将参数转换为int 如果即使未指定,也要设置为1 ,则包括。也就是说, 然后

  • 问题内容: 考虑程序的三个不同的运行: 是否可以在第一种情况下,第二种情况下,第三种情况下使用? 问题答案: 带有参数的参数可以很好地处理此三向输入。 我也可以给它一个参数。 如何使用argparse在python中添加多个参数选项?

  • 问题内容: 我发现新类中的子类化和字典更新有一个奇怪的问题: 在调试中,在第二个调用()中,您可以看到构造函数内已经等于,并且在此之后调用构造函数时,这两个对象都变为了! 同样,构造函数调用的顺序为: 如果在构造函数中替换为,一切都会正常,并且将按预期方式运行 但是我确实需要 更新 此属性,而不是替换它。 问题答案: 不应具有这样的默认值。改为这样做: 这是一个常见的python “ gotcha

  • 本主题中的某些内容可能不适用于某些语言。 为标准的 Office 联机帮助显示“Office 助手”及内置的带有“请问您要做什么?”的“助手”气球。 expression.Help 表达式 必需。该表达式返回一个Assistant 对象。 示例 本示例在用户选中“I need more information”复选框后,显示内置的含有“请问您要做什么?”的“助手”气球。 Set b = Assis

  • 问题内容: def save_file(self, outputfilename = self.image_filename): self.file.read(outputfilename) .... 在第一行中给出。似乎Python不接受它。我该如何重写代码,以免引发异常? 问题答案: 使用默认值并检测到该值。