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
相关产品推荐
相关产品推荐

