- 以及可选位置的排序

时间:2016-04-22 09:06:57

标签: python argparse

请考虑以下代码:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('REPO_OR_DOUBLE_DASH', nargs='?')
parser.add_argument('SUBPAGE', nargs='?')
args = parser.parse_args()
print(args)

及其输出:

$ python a.py a b
Namespace(REPO_OR_DOUBLE_DASH='a', SUBPAGE='b')
$ python a.py '--' issues
Namespace(REPO_OR_DOUBLE_DASH='issues', SUBPAGE=None)

这里发生了什么?我期待Namespace(REPO_OR_DOUBLE_DASH='--', SUBPAGE='isues')。我怎么去那儿?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您就会问为什么第二个示例中的REPO_OR_DOUBLE_DASH参数未设置为--

原因是argparse遵循以下惯例:双破折号表示选项/标志的结束和位置参数的开始。因此,第一个"真实"参数为issues,因此保存在REPO_OR_DOUBLE_DASH参数中。