高阶函数
一、高阶函数满足的条件(只要满足其中一个就可以)
- 一个函数作为参数传递给另外一个函数
- 一个函数的返回值是一个函数
二、高阶函数定义
1、一个函数作为参数传递给另外一个函数
def foo(func): print('foo函数') func() def bar(): print('bar函数') if __name__ == "__main__": print(type(bar))
2、一个函数的返回值是一个函数
def foo(): print('foo函数') def bar(): print('bar函数') return bar if __name__ == "__main__": foo()()
三、柯理化函数
根据百度百科的介绍:在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
1、普通函数
def foo(x, y): return x + y if __name__ == "__main__": print(foo(1, 2))
2、柯理化函数
def foo(x): def bar(y): return x + y return bar if __name__ == "__main__": print(foo(1)(2))