python

python 関数を条件付きで返す方法

投稿日:

 

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一回しと二回まわしとの比較という仮設を検証している中でこの疑問に取り組みました

以上です

 

 

-python
-

Copyright© CTOを目指す日記 , 2024 All Rights Reserved.