高阶函数

一、高阶函数满足的条件(只要满足其中一个就可以)

  • 一个函数作为参数传递给另外一个函数
  • 一个函数的返回值是一个函数

二、高阶函数定义

  • 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))
    

results matching ""

    No results matching ""