Python列表初始化重复传参代码存在坏实践吗?如何优化?
重复代码问题判断与优化方案
你当前的写法确实违反了DRY(Don't Repeat Yourself,不要重复自己)的编程原则,存在可优化空间:你给4个方法重复传入了完全相同的5个参数,后续如果需要调整参数值、增减参数数量,需要同步修改4个位置,很容易出现漏改、错改的问题。
优化写法(适配你给出的Python语法场景)
优先推荐使用列表推导式实现批量调用,消除重复参数:
# 1. 先把所有需要调用的方法存入列表 methods = [method1, method2, method3, method4] # 2. 可选:如果后续有参数调整需求,提前把参数打包成元组 call_args = (arg1, arg2, arg3, arg4, arg5) # 3. 批量调用方法生成结果列表 list_op = [method(*call_args) for method in methods]
如果参数不会频繁变动,也可以省略参数打包步骤,直接写为:
methods = [method1, method2, method3, method4] list_op = [m(arg1, arg2, arg3, arg4, arg5) for m in methods]
优化收益
- 消除重复代码,后续修改参数仅需修改1处,大幅降低出错概率
- 后续需要新增/删除调用的方法时,仅需要调整
methods列表即可,无需重复编写参数调用逻辑 - 代码更精简,逻辑更清晰,可读性更高
内容的提问来源于stack exchange,提问作者james pow
相关产品推荐
相关产品推荐

