有些小脚本想给配置加个开关,但又不想手写两套参数名。Python 3.9+ 的 argparse.BooleanOptionalAction 刚好能少写一点。
环境:Python 3.9+,只用标准库。保存为 bool-flag-demo.py:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"--cache",
action=argparse.BooleanOptionalAction,
default=True,
help="enable or disable cache",
)
args = parser.parse_args()
print(args.cache)
可以分别跑:
python bool-flag-demo.py --cache
python bool-flag-demo.py --no-cache
这种比自己再加一个 --disable-cache 清楚一点,尤其是参数多起来的时候。