Python 是否检查多条件 if 语句中的所有条件?

Jos*_*eph 7 python logic python-3.x

我很好奇如果第一个条件返回 False,Python 是否会继续检查 if 语句中的条件。我想知道这一点,因为我想知道最佳实践是否是在进行更复杂的检查之前尝试检查时间复杂度较低的条件。

这两个片段有什么区别吗?

if condition_1() and condition_2():
    do_something()
Run Code Online (Sandbox Code Playgroud)

if condition_1():
    if condition_2():
        do_something()
Run Code Online (Sandbox Code Playgroud)

Ser*_*eyA 2

是的,Python 布尔运算符会短路

两个代码示例在语义上是等效的,但第一个代码示例更具可读性,因为它的嵌套级别较低。