如何处理错误的argu

2024-05-16 07:34:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用ArgumentDefaultsHelpFormatter打印解析器中每个参数的默认值。它在大多数情况下工作得很好,但是在下面的场景中我不能让它正常工作

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

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

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

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

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


Tags: storefalsetruedefault情况usage语句逻辑