如果我有一个带可选参数值的可选参数,有没有办法验证在没有给出值时是否设置了参数?
例如:
parser = argparse.ArgumentParser()
parser.add_argument('--abc', nargs='?')
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
会正确地给我:
optional arguments:
--abc [ABC]
Run Code Online (Sandbox Code Playgroud)
我如何区分下面的1和2?
...
更新:
找到解决这个问题的技巧:你可以使用"nargs ='*'"代替"nargs ='?'".这种方式#1将返回None,而#2将返回空列表.缺点是这将允许接受参数的多个值; 因此,如果合适,您需要添加支票.
或者,您也可以为参数设置默认值; 看看chepner和Anand S Kumar的回答.