how can I return function in a function?
関数を返却値として返すのってどうやるの?=> stackoverflowによると
def f(a): def F(b): return b + 5 return F >>> fun = f(10) >>> fun(3) 8
でできると書いてあります。実際やってみて
できました。
じゃあこんな感じで
条件付きで違う関数を返すことはできますか?
def f(a): if a > 100: def F(b): return a + b else: def F(b): return a - b return F
そして
実行結果はこんなかんじ
In [36]: f3 = f(1000) In [37]: f4 = f(10) In [38]: f3(7) Out[38]: 1007 In [39]: f4(7) Out[39]: 3
結論
条件付きで違う関数を返すことできます
ちなみにpython loopでフィルターする処理、loop一回しと二回まわしとの比較という仮設を検証している中でこの疑問に取り組みました
以上です