この回答によると、関数呼び出しはステートメントですが、私がCourseraでフォローしているコースでは、関数呼び出しは式であると言われています。
これが私の推測です: 関数呼び出しは何かを行います。それがステートメントである理由ですが、呼び出された後、値を評価して渡すため、式にもなります。
関数呼び出しは式ですか?
呼び出しは式です。Expressions リファレンス ドキュメントにリストされています。
ステートメントの場合は、式の一部として使用できません。ステートメントには式を含めることができますが、その逆はできません。
例として、return expression
はステートメントです。式を使用して動作を決定します。式の結果は、現在の関数が返すものです。その式の一部として呼び出しを使用できます。
return some_function()
return
ただし、呼び出しの一部として使用することはできません。
some_function(return)
それは構文エラーになります。
return
「何かをする」のは です。関数を終了し、式の結果を返します。関数を返すのは式そのものではありません。
Python 呼び出しが式でない場合、呼び出しと他の式アトムをより複雑な式に混在させることはできません。
print
関数呼び出しは式であるため、またはなどのステートメントで使用できます=
。
x = len('hello') # The expression evaluates to 5
print hex(48) # The expression evaluates to '0x30'
Python では、関数は整数や文字列と同じようにオブジェクトです。他のオブジェクトと同様に、関数には属性とメソッドがあります。関数を呼び出し可能にするのは__call__
メソッドです。
>>> def square(x):
return x * x
>>> square(10)
100
>>> square.__call__(10)
100
括弧はメソッドにディスパッチされ__call__
ます。
これは、Python がどのように機能するかの中核です。これらの洞察がお役に立てば幸いです。