我正在使用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
,这将导致正确的使用声明。
但是假设搞乱内部实现不是一种选择,有没有办法正确处理这种情况?