0

2つ以上の条件に基づいてブール値を返す関数がある場合、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を返しますか? 2つのうちどちらが速いのか、そしてその理由は何ですか?yand

私の質問はorステートメントにも同様に当てはまります。最初の条件が真の場合、次の条件を評価し続けますか?

4

1 に答える 1

8

ドキュメントから:「ブール演算子andorはいわゆる短絡演算子です。それらの引数は左から右に評価され、結果が決定されるとすぐに評価が停止します。」

于 2013-01-23T01:08:17.363 に答える