ArgumentParser在传布尔类型变量时,传入参数按字符串处理,所以无论传入什么值,参数值都为True。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--t1", default=False, type=bool)
parser.add_argument("--t2", default=False, action='store_true')
args = parser.parse_args()
print(args.t1, args.t2)
python3 test.py --t1 False --t2
True True
为此,ArgumentParser提供了参数action=store_true/store_false
,只要加上变量名,参数值就会设置为True/False。