其中一个比另一个有什么优势吗?另外,有没有比这些更好的代码来实现目标?我的直觉是,在数字 2 中,由于它已经检查了 x 或 y,所以检查 y 更有效?
if x or y:
do some stuff
if y:
do some OTHER stuff
if x or y:
do some stuff
if y:
do some OTHER stuff
第二个稍微高效一些,因为在
y
和 x
均为 False 的情况下,它不会再次重复测试 y
。如果 x
和 y
通常为 False(即很少输入第一个 if
),这会导致性能略有提高。
但是,应该注意的是,这种改进非常轻微,并且进行此更改需要权衡:由于
if y
的额外嵌套级别,代码的可读性变得较差。
如果
y
的计算成本很高,最好预先计算(缓存)一次条件,而不是评估两次。这比对这些 if
语句的排列进行微观优化更能提高性能。