如何修改使用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
相关产品推荐
相关产品推荐

