如何处理不正确的argparse默认值

时间:2018-02-12 21:51:00

标签: python argparse

我正在使用ArgumentDefaultsHelpFormatter打印出解析器中每个参数的默认值。它在大多数情况下都很好用,但在以下情况下我无法正常工作。

parser.add_argument('--keep-subsets', dest='remove_subsets',
                    default=True, action='store_false',
                    help='Keep individual subsets')

默认的面向用户行为是 NOT 保留子集,因此用法语句应报告default: False。但是,内部实现使用否定逻辑:名为remove_subsets的变量,指示是否应删除子集。上面的代码在用法声明中给出了以下内容。

--keep-subsets        Keep individual subsets (default: True)

当然,一种解决方案是逻辑上否定内部实现并传递keep_subsets变量而不是remove_subsets变量。这将允许我们使用store_true操作和default: False,这将导致正确的使用声明。

但是假设搞乱内部实现不是一种选择,有没有办法正确处理这种情况?

0 个答案:

没有答案