Pythonでのコールバック関数
Pythonでは、関数を他の関数のパラメータとして渡すことが可能です。この際、関数は変数として(丸括弧なしで)渡され、コールバックと呼ばれます。 このようなコールバック関数は、メイン関数の本体で実行されます。
数値と関数をパラメータとして受け取る関数testがあるとしましょう:
def test(num, func):
pass
次に、数値を2乗する関数funcを作成しましょう:
def func(num):
return num ** 2
ここで、testに戻り、その本体にコードを追加して、パラメータとして渡されたコールバック関数も数値をパラメータとして受け取るようにしましょう。結果として、testの結果は他の関数の動作となり、その関数のための数値はtestの最初のパラメータから取得されることになります:
def test(num, func):
print(func(num))
次に、関数testを呼び出し、最初のパラメータとして3を、2番目のパラメータとしてfuncを渡します:
test(3, func) # 9を出力します
次のコードを実行した結果はどうなりますか:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)