1. Uczyć się
  2. /
  3. Courses
  4. /
  5. Python関数の書き方

Connected

Exercise

クロージャで値を安全に保つ

姪にクロージャを理解してもらうお手伝いを続けています。get_new_func() という、入れ子関数を返す関数を書きました。入れ子関数 call_func() は、get_new_func() に渡された関数を呼び出します。また、my_special_function() という関数も用意しており、これは「my_special_function() を実行しています」というメッセージを出力するだけの関数です。

ここでは、my_special_function() を get_new_func() に渡した後でどんな変更を加えても、新しい関数のクロージャに元の my_special_function() が閉じ込められているため、新しい関数は元の my_special_function() の動作を再現することを姪に示したいと考えています。

Instrukcje 1 / 3

undefined XP
  • 1

    my_special_function() を "hello" とだけ表示するように再定義しても、元のメッセージが得られることを示してください。

  • 2

    my_special_function() を削除しても、new_func() を問題なく呼び出せることを示してください。

  • 3

    my_special_function() を新しい関数で上書きしても、元のメッセージが得られることを示してください。