我正在尝试理解argparse
包,我真的找不到这个非常简单的问题的答案:
- 有什么区别
-a
and --argument
添加参数时?
有时,我发现两者合二为一add_argument()
像这儿:
parser.add_argument(
"-f", "--file",
help="file path"
)
如果两者都指定,则 argparse 将以长格式('argument')而不是短格式('a')存储值。它将推断目的地,因此“--foo-bar”将存储在foo_bar
.
您可以将短形式混合在一起并使用单个连字符 (-af
)但与某些 *NIX 命令不同,顺序很重要:如果您的参数需要一个值(-f filename
)然后论证must作为短格式参数组的最后一个参数出现:
cmd -af my_file # works
cmd -fa my_file # does not work
和怪物比较一下tar(1)
这使得tar -cfC myfile.tar ./directory
并将其正确地排序为逻辑上等同于tar -c -f myfile.tar -C ./directory
。此外,某些长格式允许在指定选项时使用“=”tar -cf myfile.tar
, 相对tar -c --file=myfile.tar
。您不能在缩写形式上使用“=”。
幸运的是,python argparse 并不关心“=”。使用或不使用它,无论是短形式还是长形式。
# All equivalent:
cmd -af=my_file
cmd -a -f my_file
cmd -a -fmy_file
cmd -afmy_file
cmd --file my_file -a
cmd --file=my_file -a
有关系吗?正如另一个答案所表明的那样,长形式有助于提高可读性。简短的形式可以让您的高级用户更满意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)