如何在多互斥条件场景下避免重复编写大段代码?
解决代码重复的方案
核心思路就是把重复的大段代码封装成独立函数,然后通过统一的条件判断来决定是否执行这个函数,彻底避免代码复制粘贴。
具体实现步骤:
1. 把大段代码封装成函数
把你需要执行的那部分大代码放到一个函数里,比如:
def run_business_logic(): # 这里是你的大段代码,示例逻辑: process_raw_data() generate_analysis_report() send_alarm_notification() # ... 其他业务逻辑
2. 简化触发条件,统一判断
两种场景的条件可以合并成清晰的判断逻辑,避免多分支重复代码:
方式一:直接合并条件
# 假设a、b、c、d、f、SWITCH都是已定义的布尔变量 if (SWITCH and d and f) or (not SWITCH and a and b and c and d and f): run_business_logic()
方式二:提取公共条件简化写法
观察到两种场景都需要满足d and f,可以先提取这个公共条件,让代码更简洁:
if d and f and (SWITCH or (a and b and c)): run_business_logic()
解释:当
SWITCH=True时,只要d and f满足就执行;当SWITCH=False时,需要额外满足a and b and c才会执行。
方式三:分步计算条件(可读性更强)
如果觉得合并的条件太长,也可以分步计算是否需要执行:
need_run = d and f if not SWITCH: # 开关关闭时,额外检查a、b、c need_run = need_run and a and b and c if need_run: run_business_logic()
方案优势
把重复代码封装成函数后,不管触发条件怎么调整,只需要调用函数即可;后续修改大代码逻辑也只需要改函数内部,不用在多个分支同步修改,大幅降低维护成本。
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

