我尝试过但没有成功的东西:
parser.add_argument('--download',type=bool,default=False)
parser.add_argument('--download',default=False,action='store_true')
parser.add_argument('--download',action='store_true')
对于情况1,传递False
也被解释为True
。对于情况2和3,我得到错误
main.py: error: unrecognized arguments: False
Python版本:3.8
为什么argparse
不适用于布尔参数?
"store_true"的工作方式是,如果将--download
作为参数,则该值为true;如果你省略了它,它就是假的。
type=bool
无法正常工作的原因是,传递给bool
函数的任何非空字符串都将导致True。(如果需要,您可以编写一个函数,如果字符串为"True",则返回True,如果为"False"则返回False,并将其用于type
,但这不是典型的用例。(