You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python argparse仅调用参数(无需传值)触发函数执行

解决argparse开关型参数的问题

嗨,这问题很常见!你现在的代码里,-s/--show参数默认需要传入一个值,因为argparse默认把它当成需要接收参数值的选项。要实现“只传参数名就触发动作”的效果,只需要给add_argument加上action='store_true'参数就行啦。

修改后的代码

import argparse

parser = argparse.ArgumentParser(description="Database accounts manager")
# 添加action='store_true',把参数变成开关型选项
parser.add_argument("-s", "--show", help="Shows all database rows and columns", action='store_true')
args = parser.parse_args()

if args.show:
    print("i am beautiful")

为什么这样有效?

  • action='store_true'告诉argparse:当用户使用-s或--show时,自动把args.show设为True;如果不使用这个参数,默认值是False。
  • 你原来写的dest="show"其实可以省略,因为argparse会自动把长选项--show作为dest的名称(没指定时默认用长选项名)。
  • required=False是argparse的默认设置,所以也不用特意写出来。

测试命令

现在直接运行以下命令就能触发print语句:

python file.py -s
# 或者
python file.py --show

如果不传入-s/--show,args.show就是False,不会执行print内容。

扩展小技巧

如果需要一个“反向开关”(比如--hide,传入时设为False),可以用action='store_false',此时参数的默认值会变成True。

内容的提问来源于stack exchange,提问作者Tiago Oliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:47:27