store_true 是指带触发action时为真,不触发则为假。通俗讲是指运行程序是否带参数,看例子就明白了.
一、没有default
import argparse
parser = argparse.ArgumentParser(description='test.py')
parser.add_argument('--cuda', type=bool, default=True, help='use cuda')
parser.add_argument('--cpu',action='store_true',help='use cpu')
args = parser.parse_args()
print("cuda: ",args.cuda)
print("cpu: ",args.cpu)
如果运行命令为:python test.py
则输出为:
cuda: True
cpu: False
如果运行命令为:python test.py --cpu
则输出为:
cuda: True
cpu: True
二、有default
当然 ‘store_true’ 也可以设置 default ,虽然这样看起来很奇怪,也不好用。如:
parser.add_argument('--cpu',default=True,action='store_true',help='use cpu')
print("cpu: ",args.cpu)
default=True时运行程序时加不加 “ --cpu ” 输出都是 cpu: True
但default=False就不一样了:
parser.add_argument('--cpu',default=False,action='store_true',help='use cpu')
print("cpu: ",args.cpu)
若运行命令是 python test.py,则输出 cpu: False
若运行命令是 python test.py --cpu,则输出 cpu: True