概要
Pythonにて、関数を返す関数を利用して、関数に事前に値を渡し、その関数を引数として別の関数に渡したいシチュエーションがあったため、その方法を示します。
使いどころとしては、
- 計算ロジックの事前カスタマイズ
- 設定値を設定したうえでの関数の引き渡し
実装
from typing import Callable
def add_value(add_val: float) -> Callable[[float], float]:
return lambda x: add_val + x
def calc(val: float, calc_func: Callable[[float], float]):
return calc_func(val)
print(calc(10, add_value(5))) # 15
print(calc(10, add_value(10))) # 20