在 Python 的 argparse 中,如果要设置一个默认值为 True 的参数,并允许通过命令行将其改为 False,应使用 action='store_false'。这样,当命令行中指定该选项时,参数值会被设为 False;不指定时,则保持默认的 True。
示例代码
python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--flag', action='store_false', help='Disable the flag (default: enabled)')
args = parser.parse_args()
print(args.flag) # 默认 True,指定 --flag 后变为 False
命令行行为
- 不指定
--flag:args.flag = True - 指定
--flag:args.flag = False
说明
action='store_false'的语义是:选项出现时设为False,否则为True,正好符合"默认 True,指定变 False"的需求。- 若希望选项名更直观,可改用
--no-flag并搭配action='store_true',但那样默认值需设为False,不符合题目"默认值为 true"的前提。
因此,直接使用 action='store_false' 是最简洁的解决方案。