硬件场景下Python try-catch中简化while循环的实现需求
简化硬件场景下的循环检测代码
从事硬件相关工作,涉及的物理变量可能随时变化,需要在try-catch结构中编写while循环,实现只要get_parameters函数未返回3就持续执行,返回3时终止循环,并简化现有重复代码。
现有代码
try: local_factory_param_multi_burn = _itwo_cnc_instance.get_parameters("factory_param_multi_burn") except Exception as e: raise Exception(f"Failed to get factory_param_multi_burn. {e}") while local_factory_param_multi_burn != 3: try: local_factory_param_multi_burn = _itwo_cnc_instance.get_parameters("factory_param_multi_burn") except Exception as e: raise Exception(f"Failed to get factory_param_multi_burn. {e}")
简化后的代码
try: while _itwo_cnc_instance.get_parameters("factory_param_multi_burn") != 3: pass except Exception as e: raise Exception(f"Failed to get factory_param_multi_burn. {e}")
简化说明
- 将参数获取操作直接嵌入循环条件,无需额外变量存储中间值,减少冗余代码
- 外层统一的try-catch块覆盖所有
get_parameters调用的异常处理,避免重复的异常捕获逻辑 - 完全满足需求:每次循环都会检查物理变量值,只要返回值不等于3就持续执行,返回3时立即终止循环,任何一次调用抛出异常都会触发统一的错误提示
内容的提问来源于stack exchange,提问作者Ino
相关产品推荐
相关产品推荐

