1. 指定action时
通俗讲,action的作用就是在命令行中指定参数名称时,参数的取值。
如:
parser.add_argument('--save-file', action='store_true', default=False, help='是否保存文件')
给参数设置action之后,命令执行时,参数就不能再赋值,不然会报错。
比如执行脚本:python test.py --save-file True ,这时会报错(认为True是一个新的参数):
error: unrecognized arguments: True
也就是说设置了action之后,命令中的参数就不需要赋值,会取action中的值。
直接执行 python test.py --save-file 即可。
而且这里再设置default已经无意义了,没有任何作用。
如果你尝试同时设置 type 和 action 这两个属性,argparse
会抛出一个错误,提示这两个设置是互斥的。
2. 指定type时
parser.add_argument('--save-file', type=bool, default=False, help='是否保存文件')
命令中参数必须赋值,如:python test.py --save-file True
否则,会报错:error: argument --save-file: expected one argument
或者命令中不带参数名,则直接以default参数为准。