関数とスコープ・ラムダ計算問題

以下のコードを実行したときの出力結果として正しいものはどれか。 def outer(x): def inner(y): return x + y return inner func = outer(10) result = func(7) + func(5) print(result)

A.32
✗ クロージャの動作を誤解しています。outer(10)で返された関数は、xの値を10として保持します。
B.22
✗ func(7)の計算が誤っています。func(7)=10+7=17であり、12ではありません。
C.27
✗ 加算の計算が誤っています。func(7)+func(5)=17+15=32ではなく、正確に計算してください。
D.35← 正解
✓ 正解です。outer(10)で返された関数funcは、x=10を保持します。func(7)=10+7=17、func(5)=10+5=15、17+15=35です。

Python 3 エンジニア認定基礎試験 の問題一覧