はい、Python は式を左から右に評価します。関数は同じ順序で呼び出されます。リファレンス ドキュメントから:
Python は式を左から右に評価します。
さらに、式を使用する場合とネストする場合の両方で、false 値が返されたfunc2()場合は呼び出されません。ブール演算のドキュメントを引用:func1()andif
式x and yは最初に評価されxます。が false の場合x、その値が返されます。それ以外の場合yは評価され、結果の値が返されます。
式func1() and func2()では、 false の値が返されたfunc2()場合は評価されないため、は一切呼び出されません。func1()func2()
all()関数を使用して、ここで 3 番目の代替手段を使用できます。
functions = (func1, func2, func3, func4)
if all(f() for f in functions):
これも、前の関数が真の値を返し、関数を順番に呼び出す限り、関数のみを呼び出します。
このall()アプローチではfunc1、 、func2、func3、およびfunc4が を呼び出す前にすべて実際に定義されている必要がありますall()が、ネストされたiforand式のアプローチでは、前の関数が真の値を返す限り、関数を定義する必要があるだけです。