Python argparse";“强制性”;可选参数

Python argparse";“强制性”;可选参数,python,argparse,Python,Argparse,Python的argparse模块具有所谓的“可选”参数。默认情况下,名称以-或-开头的所有参数都是可选的。通常,强制参数是位置参数,因此在运行程序时,它们不会显式命名 例如,在具有以下内容的脚本中: parser.add_argument('language', help="Output language") 调用如下所示: $ hello-world czech 有时,通过名称传递强制参数可能更好(例如,脚本调用更易于阅读),但仍然是强制的。i、 e $ hello-world --us

Python的
argparse
模块具有所谓的“可选”参数。默认情况下,名称以
-
-
开头的所有参数都是可选的。通常,强制参数是位置参数,因此在运行程序时,它们不会显式命名

例如,在具有以下内容的脚本中:

parser.add_argument('language', help="Output language")
调用如下所示:

$ hello-world czech
有时,通过名称传递强制参数可能更好(例如,脚本调用更易于阅读),但仍然是强制的。i、 e

$ hello-world --use-lang czech

如何做到这一点?在
argparse
文档中,命名参数被称为“可选”,这听起来好像它们不是强制性的。有没有办法使它们成为强制性的?

根据规范性文档,可以。使用
add_参数
required
命名参数:

parser.add_argument('--use-lang', required=True, help="Output language")

在自我回答之前,至少等待一点;我并不反对自我回答,但如果不是真心的寻求外界的意见,那也可能是一篇博客文章。通常情况下,你可以很容易地做出一个“必需的”通过为选项指定合适的默认值,选项再次可选。@user2864740-我只是想记录这一点,因为我必须花一些时间阅读官方文档,然后才能弄清楚。我不写博客,不管怎样,这是一个比私人博客更好的论坛。我经常在问谷歌之前搜索它。@user2864740-我只是跟着。答案是现在的社区维基。不幸的是,我现在似乎不能把这个问题变成一个问题。如果您认为这不是一个很好的问题,因为它已经被记录在案,那么您可能想要否决这个问题。删除不符合标准的问题我没有问题。Python开发人员对“可选参数”的名称以及是否可以改进存在一些争论。在UNIX世界中,使用
-,--
标志
选项
选项
调用参数已有很长的历史。然后,如何使
-帮助
看起来正确: