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

如何使用argparse实现func1/func2带可选参数的命令行调用格式

实现方案

用argparse的子命令功能即可完美匹配你需要的命令行格式,完整实现步骤和代码如下:

1. 核心逻辑说明

  • 给argparse添加子命令解析器,func1和func2分别作为两个子命令
  • 给func2单独添加可选参数,func1不需要额外参数的话可以不用配置
  • 解析参数后判断选中的子命令,调用对应函数并传入参数即可

2. 完整代码示例

import argparse

# 你内部定义的两个业务函数
def func1():
    print("执行func1逻辑,无参数传入")

def func2(optional_arg=None):
    print(f"执行func2逻辑,传入的可选参数为:{optional_arg}")

if __name__ == "__main__":
    # 初始化顶级解析器
    parser = argparse.ArgumentParser(description="调用内部函数的命令行工具")
    # 添加子命令解析器,required=True表示必须选一个子命令
    subparsers = parser.add_subparsers(dest="command", required=True)

    # 添加func1子命令,无额外参数
    subparsers.add_parser("func1", help="执行func1函数")

    # 添加func2子命令,配置可选参数
    parser_func2 = subparsers.add_parser("func2", help="执行func2函数")
    parser_func2.add_argument("optional_argument", nargs="?", help="func2的可选参数,可省略")

    # 解析命令行参数
    args = parser.parse_args()

    # 按选中的子命令调用对应函数
    if args.command == "func1":
        func1()
    elif args.command == "func2":
        func2(args.optional_argument)

3. 命令行调用测试

  • 调用func1:python file.py func1
  • 调用func2不带参数:python file.py func2
  • 调用func2带参数:python file.py func2 测试参数
  • 查看帮助说明:python file.py -h 或者 python file.py func2 -h

内容的提问来源于stack exchange,提问作者Engr Ahsan Inam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:15:01