1. 问题描述:在进行命令行参数值获取时发现,若是将parser.add_argument中的type赋值为bool,那么命令行附参无论是false还是true,parse处都会变为true,举例:
#代码段
parser = argparse.ArgumentParser(description="Transmit setting")
parser.add_argument("-s", type=bool)
print(parser.parse_args())
###################情况1########################
#命令行
python 脚本.py -s False
#输出
Namespace(s=True)
###################情况2########################
#命令行
python 脚本.py -s True
#输出
Namespace(s=True)
2.原因分析:因为parser在读取命令行参数得时候获取到的都为str类型,也就是说,我们在进行-s True 或者-s False操作时,首先传入parser中的不