関数とスコープ・ラムダ比較問題
def文で定義した関数とlambda式で定義した関数の名前付けと参照方法の違いについて、正しい説明はどれですか?
A.def関数は必ず関数名で呼び出し、lambda関数は変数に代入してから呼び出す← 正解
✓ 正解です。def関数は定義時に名前が決まり、lambda関数は無名関数で変数代入時に参照可能になります。
B.lambda関数は定義時に自動的に関数名が割り当てられるが、def関数は手動で名前を指定する
✗ lambda関数は無名関数であり、自動的に関数名は割り当てられません。逆です。
C.両者ともに関数名で呼び出す必要があり、参照方法に本質的な違いはない
✗ lambda関数は定義時に名前がなく、参照方法が異なります。この説明は不正確です。
D.def関数は関数オブジェクトとして参照できないが、lambda関数は参照可能である
✗ def関数もlambda関数も関数オブジェクトとして参照可能です。参照性に違いはありません。
「関数とスコープ・ラムダ」の他の問題
以下のコードを実行したときの出力結果として正しいものはどれか。
def multiply(x, y=3):
r…以下のコードを実行したときの出力結果として正しいものはどれか。
square = lambda x: x ** 2
a…以下のコードを実行したときの出力結果として正しいものはどれか。
def calculate(a, b, c=2):
…以下のコードを実行したときの出力結果として正しいものはどれか。
numbers = [2, 3, 4, 5]
resu…以下のコードを実行したときの出力結果として正しいものはどれか。
def outer(x):
def inner…以下のコードを実行したときの出力結果として正しいものはどれか。
def func(a, b, *args):
…