0

如果我有一个基于两个或多个条件返回布尔值的函数,Python 会检查每个条件吗?

更具体地说,这是一个理论函数:

def f(x, y):
    return x < y and f2(x, y) == 1

如果f2需要一段时间来执行,我应该改成f这个吗?

def f(x, y):
    if x >= y: return False
    return f2(x, y) == 1

如果由于前面的向上x而大于或等于,Python 会自动返回 False吗? 两者中哪个更快,为什么?yand

我的问题同样适用于or语句,如果第一个条件为真,它会继续评估下一个条件吗?

4

1 回答 1

8

来自文档:“布尔运算符andor所谓的短路运算符:它们的参数从左到右进行评估,一旦确定结果,评估就会停止。”

于 2013-01-23T01:08:17.363 回答