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

如何修改使用optparse的Python main函数以支持直接传参调用

最简修改方法

核心修改思路

给main函数添加可选参数,兼容命令行自动读取参数和交互式手动传参两种场景,同时修正原代码里的类名笔误(optParse应为OptionParser)。

修改后的完整代码

import sys
from optparse import OptionParser

def main(args=None):
    parser = OptionParser(prog='script')
    # 启用原本注释的-e/--repeat选项,匹配你的调用需求
    parser.add_option("-e","--repeat",dest="repeat",type=int,default=3,help="Total number of times to do the checking.")
    parser.add_option("-H","--time",dest="time", type='float', default=1.0,help="Time in hours to run the test.")
    
    # 处理参数来源:传入了args就用手动参数,否则读取命令行参数
    if args is None:
        args = sys.argv[1:]
    options, _ = parser.parse_args(args)
    
    # 后续业务逻辑可直接使用options.repeat和options.time
    # 示例:打印参数值
    print(f"重复次数: {options.repeat}, 测试时长: {options.time}小时")

# 保留原命令行运行逻辑
if __name__ == "__main__":
    main()

调用方式

  • 命令行运行(和原有逻辑兼容):
    python script.py -e 5 -H 2
    
  • Python交互式会话调用:
    import script
    script.main(['-e', '5', '-H', '2'])
    

关键说明

  • 给main函数设置args=None的可选参数,既不破坏原有命令行运行逻辑,又支持手动传入参数列表
  • parse_args()方法默认读取sys.argv[1:],显式处理args参数可明确控制参数来源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:45:05