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

Python如何遍历函数列表?优化异常后重复执行逻辑

优化异常处理后的函数执行逻辑

优化后代码

def call_va_funcs(self, stop):
    self.disableZüruckVA()
    # 定义需要执行的操作函数列表
    va_operations = [
        self.ping_all_va,
        self.run_rxtx,
        self.call_netzteil
    ]
    
    while True:
        try:
            correct = urllib.request.urlopen("http://192.168.167.12", timeout=10).getcode()
            print(correct, "192.168.100.2 is reachable: FAIL")
            if correct == 200:
                self.enableZüruckVA()
                self.exitflag = True  # 修复原代码的赋值错误(原先是==比较)
                break
        except Exception:
            print('Preflash')
            # 先检查一次exitflag
            if self.exitflag:
                self.enableZüruckVA()
                break
            
            # 遍历执行所有操作函数
            for func in va_operations:
                func()
                time.sleep(1)
                # 每次执行后检查exitflag,触发则恢复并退出
                if self.exitflag:
                    self.enableZüruckVA()
                    break
            else:
                # 如果所有函数都执行完且未触发exitflag,继续循环
                continue
            # 触发exitflag后退出外层while循环
            break

关键改动说明

  • 消除重复代码:将原代码中逐个调用的操作函数整理成列表va_operations,通过遍历统一执行,避免重复的exitflag判断和恢复代码
  • 修复赋值错误:原代码中self.exitflag == True是比较操作,改为self.exitflag = True完成赋值
  • 统一判断逻辑:在遍历函数时,每次执行后检查exitflag,一旦触发立即执行enableZüruckVA()并退出循环,逻辑更清晰

内容的提问来源于stack exchange,提问作者python3 aswin.py

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:40:34