python优化else_优化代码中大量的if/else,你有什么方案?

先说几点常识, 再讨论几个技巧if else 的层数反应的是代码的复杂程度, 这个层数可能是偶然复杂度, 不见得是必要复杂度

所谓化简, 无非就是理解这坨代码引入的偶然复杂度(也就是非必要复杂度), 最后化简为必要复杂度的代码

化简的核心, 就在于函数要清晰清晰清晰, 写的人要理解要理解要理解背后的逻辑, 至于什么策略模式啥的都是小技巧罢了

如果必要复杂度就是那样, 那么无法化简, 也无法优化如果可以的话, 一定要补充上单元测试, 确保最上层函数的输入和输出是一致的之后, 再去重构

我在我的专栏 中写过这一点, 这里介绍几个技巧

无与童比:如何写出整洁的 Python 代码 中篇​zhuanlan.zhihu.com

技巧一 通过提前判断, 避免过深的缩进

场景,你在做一个 B2B2C 的商城系统。商家的活动需要在某些比较严格的条件下才能参与(假设有五个字段吧)。

如果不动手捋一捋判断的路径,上来就动手写代码,则很容易写出如下的代码。

if cond1:

dosomething()

if cond2:

dosomething()

if cond3 and cond4:

dosomething()

else:

dosomething()

if condx:

dosomething()

else:

if cond2:

dosomething()

if cond3 and cond4:

dosomething()

if condx:

dosomething()

想想你这个时候才判断了 5 个字段... 如果想都不想就开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值