在 Python 模块的文档中argparse
,3.8 文档指出nargs
可以设置为:
\n\n\n
argparse.REMAINDER
。所有剩余的命令行参数都收集到一个列表中。这对于分派到其他命令行实用程序的命令行实用程序通常很有用。
这已从3.9 文档中删除,尽管没有提到它已被弃用,也没有任何充分的理由这样做,因为它提供了其他方式显然没有提供的有用功能。\xc2\xb9 它的存在在页面的其他地方仍然提到:
\n\n\n这些[混合]解析器不支持所有 argparse 功能,如果使用不支持的功能,则会引发异常。特别是,不支持子解析器、argparse.REMAINDER 以及包含可选值和位置值的互斥组。
\n
但即使如此,[3.10 文档] 中也删除了这一点。然而,即使在最新发布的 Python 3.11.4 版本中,该功能仍然存在。
\n那么为什么它从文档中删除了呢?
\n我问这个问题是因为这个答案似乎可能直接关系到我关于用 Python 编程参数解析器的其他几个相关问题。(我曾经、现在和可能继续使用的特定情况nargs=REMAINDER
足够大,我认为如有必要,它们应该作为单独的问题发布。)考虑因素包括:
(另请注意,此类问题的答案不仅取决于特定的上下文nargs=REMAINDER
使用的特定上下文,而且还可能被视为意见问题,这是将它们超出本问题范围的另一个原因。)
\xc2\xb9nargs=REMAINDER
与nargs=\'*\'
: using不同,using 意味着 argparse从那时起REMAINDER
不会尝试解析选项(以 开头)。因此,-
with不会尝试将 解析为 的选项,而是将按原样处理该行REMAINDER
mycmd -q run bash -c exit
-c
mycmd
mycmd -q run -- bash -c exit
\'*\'
。
[3.10 文档]
\n 归档时间: |
|
查看次数: |
245 次 |
最近记录: |