【Python】python中的argparse包在解析bool型参数时的细节问题

1.参数定义

定义了如下三个参数,其中use_entity_typeuse_entity_idbool 参数。这两个bool型参数的默认值都是True在这里插入图片描述

2. 命令行传参

这里是vscode中的launch.json 文件中的参数定义,想把下面的两个参数修改成False
在这里插入图片描述

3. 运行过程

运行代码,但是发现经过parser.parse_args()之后,参数 use_entity_typeuse_entity_id 值仍未变。这是为什么呢?
在这里插入图片描述
原因在于:虽然指定了参数类型是bool,但是无论在命令行中传入何值,parser解析得到的结果始终都是True

4.解决方法

那么有没有什么解决方法呢?有的
使用 action='store_true' 可以帮忙解决这个问题。即将 add_arguments处的定义修改如下:
在这里插入图片描述
接着传入参数是,直接通过是否给出这个参数名就能解决上面这个问题了。

猜你喜欢

转载自blog.csdn.net/liu16659/article/details/129904445