今天又碰到一个坑...使用argparse解析bool型参数返回值总是true.

问题出现

首先我使用以下进行参数解析

parser.add_argument('--train_classifier',           type=bool,  help='wether train the classsifier',    default=False)

在使用时指定

--train_classifier False

得到参数都是True

问题分析

这里是因为argparse库对于bool型参数是这样控制的:

--train_classifier

使用这个选项即打开.

问题解决

parser.add_argument('--train_classifier',           type=str,   help='wether train the classsifier',    choices=['True', 'False'], default='False')

现在使用选项的方式来控制bool