如何让Python嵌套循环从指定断点处继续执行?
解决方案
要精准恢复到出错位置且不重复已执行的代码,可以分两步处理:
- 单独重新执行出错的
(9,15)任务 - 从
i=10开始执行剩余的完整循环
具体代码实现如下:
# 重新执行i=9的初始化(若异常导致之前的初始化状态失效,这一步是必要的) setup_things(9) # 只执行出错的那一次昂贵操作 do_very_expensive_thing(9, 15) # 继续执行i从10到14的所有循环 for i in range(10, 15): setup_things(i) for ii in range(16): do_very_expensive_thing(i, ii)
如果需要更通用的断点恢复逻辑(比如不确定具体出错位置时),可以先记录失败的i和ii值,再执行恢复:
# 记录异常发生的位置 failed_i = 9 failed_ii = 15 # 重跑失败的任务 setup_things(failed_i) do_very_expensive_thing(failed_i, failed_ii) # 执行后续所有未完成的循环 for i in range(failed_i + 1, 15): setup_things(i) for ii in range(16): do_very_expensive_thing(i, ii)
这种写法完全规避了重复执行(9,0)到(9,14)以及i<9的所有代码,同时确保出错的任务被重新执行,剩余任务按原逻辑完成。
内容的提问来源于stack exchange,提问作者Olsgaard
相关产品推荐
相关产品推荐

