编写相互依赖的 if else 语句?

问题描述 投票:0回答:1

其中一个比另一个有什么优势吗?另外,有没有比这些更好的代码来实现目标?我的直觉是,在数字 2 中,由于它已经检查了 x 或 y,所以检查 y 更有效?

  1. if x or y:
        do some stuff
    if y:
        do some OTHER stuff
    
  2. if x or y:
        do some stuff
        if y:
            do some OTHER stuff
    
python
1个回答
0
投票

第二个稍微高效一些,因为在

y
x
均为 False 的情况下,它不会再次重复测试
y
。如果
x
y
通常为 False(即很少输入第一个
if
),这会导致性能略有提高。

但是,应该注意的是,这种改进非常轻微,并且进行此更改需要权衡:由于

if y
的额外嵌套级别,代码的可读性变得较差。

如果

y
的计算成本很高,最好预先计算(缓存)一次条件,而不是评估两次。这比对这些
if
语句的排列进行微观优化更能提高性能。

© www.soinside.com 2019 - 2024. All rights reserved.