【发布时间】:2011-04-01 19:00:32
【问题描述】:
在 if 语句中使用 and 与使用多个 if 语句之间有效率差异吗?换句话说,是像
if expr1 == expr2 and expr3==expr4:
dostuff()
那么从效率的角度来看不同:
if expr1 == expr2:
if expr3 == expr4:
dostuff()
我的非常基本的测试没有发现差异,但是有更多知识(或至少更彻底的测试)的人有明确的答案吗?
【问题讨论】:
-
我不知道效率有什么不同,但更重要的是你的代码的可读性。如果使用多个嵌套的
if语句更清晰,那么做你认为有意义的事情。 -
如果你真的想知道发生了什么,你应该在反汇编程序中查看它,但是第一个表达式同样快(可能更快,但可能没有以这种方式优化),因为 Python 使用短-电路评估。
-
@NickBastin 因为运营商是
and,短路对这两种方法有何影响?在嵌套if的情况下也是如此,如果第一个条件为假,则不会检查另一个。短路也会发生同样的情况。
标签: python performance conditional