GCC命令行解析的一个很好的特性是“-fmy option”形式的大多数标志都有一个名为“-fno my option”的负版本。最右边的引用优先,因此您只需将“-fno my option”附加到生成文件中的CFLAGS或类似项,即可禁用某个选项,而无需删除其他标志。你知道吗
我想在一个包装器脚本为Python并使用argparse的工具中支持类似的东西。用store_true
的动作定义两个版本的参数显然是行不通的,因为这不允许我要求最右边的出现。你知道吗
显然,支持--my-option=yes
/--my-option=no
这样的语法很容易,但是用户不必传递参数就更好了。你知道吗
有没有办法让argparse为这样的布尔标志设置一个开/关开关?你知道吗
不需要任何花哨的步法,我就可以设置一对写入同一个
dest
的参数,并利用最后一次写入是坚持的:如果没有
dest
参数,它们将使用从选项字符串中确定的名称。但我可以给出一个dest
,或者在创建之后更改该值:现在使用其中一个将设置
switch
属性。你知道吗默认值来自第一个定义的参数。这是解析开始时如何设置默认值的函数。对于所有其他输入,它是设置值的最后一个参数
也可以使用单独的命令设置默认值:
如果你想经常使用这种特性,你可以编写一个小的实用函数来创建一对带有任何标志和dest的参数。甚至有一个bug/issues请求这样的增强,但我怀疑它是否会被实现。你知道吗
相关问题 更多 >
编程相关推荐