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

如何简化这段Python递归代码?解决栈溢出问题

修复栈溢出:将递归计数逻辑改为循环实现

原代码因递归调用open_task和restart导致栈溢出错误,以下是改为循环实现的版本,完全保留原有「计数到21后重启、异常时重试」的功能:

import time

def main():
    while True:
        task_counter = 0
        while task_counter < 21:
            try:
                task_counter += 1
                print(task_counter)
                time.sleep(1)
            except:
                # 捕获异常后继续当前计数步骤,与原逻辑一致
                pass
        # 计数完成后等待2秒,进入下一轮循环(模拟重启)
        time.sleep(2)

if __name__ == "__main__":
    main()

关键修改说明

  • 用外层while True循环替代原restart的递归调用,避免每次重启向调用栈添加新帧,从根源解决栈溢出问题
  • 用内层while循环替代open_task的递归计数,消除递归带来的栈压力
  • 移除嵌套函数结构,代码更简洁易读
  • 异常处理逻辑完全保留:捕获异常后不中断计数流程,继续执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:45:33