如何简化项目中错误输出模块的多重if判断语句?
简化多重条件判断的错误输出代码
当然可以简化,把重复的校验逻辑抽成结构化的列表,既减少冗余代码,也方便后续维护。重构后的代码如下:
# 整理校验项:变量与对应错误信息的映射 validation_checks = [ (self.Lot_Mean_r, "Error: Lot Mean negative or less than 0"), (self.Lot_SD_r, "Error: Lot SD negative or less than 0"), (self.SSB_DF_r, "Error: SSB DF negative or less than 0"), (self.SSW_DF_r, "Error: SSW DF negative or less than 0"), (self.SST_DF_r, "Error: SST DF negative or less than 0"), ] has_errors = False for value, msg in validation_checks: if value <= 0: self.ui.textEdit_status_N.append(msg) has_errors = True if not has_errors: # 执行原来的主代码 [main code]
简化思路:
- 把需要校验的变量和对应的错误信息打包成元组,放在一个列表里,避免重复写
if判断 - 通过循环遍历列表完成所有校验,统一处理错误输出
- 用一个标志位
has_errors记录是否有错误,替代原来的外层if-else逻辑
这样修改后,逻辑和原代码完全一致:会输出所有不符合条件的错误信息,没有错误时才执行主代码。后续如果要新增校验项,直接在validation_checks里加新的元组即可,不用再写新的if块。
内容的提问来源于stack exchange,提问作者gigi
相关产品推荐
相关产品推荐

