通过前面的了解, 我们已经知道函数名其实仅仅是一个普普通通的变量名而已.
那么是不是也意味着:函数也可以作为参数传递呢?
答案是肯定的!
一个可以接收函数作为参数的函数就是高阶函数!
一个最简单的高阶函数
def foo(x, y, f): # f 是一个函数
"""
把 x, y 分别作为参数传递给 f, 最后返回他们的和
:param x:
:param y:
:param f:
:return:
"""
return f(x) + f(y)
def foo1(x):
"""
返回参数的 x 的 3次方
:param x:
:return:
"""
return x ** 3
r = foo(4, 2, foo1)
print(r) # 72
说明:
这里的
foo
就是高阶函数, 因为他接收了一个函数作为参数.foo1
作为参数传递给了foo
, 而且foo
中的局部变量f
接收了foo
传递过来的数据, 那么最终是foo
和f
同时指向了同一个对象.
总结
编写高阶函数,就是让函数的参数能够接收别的函数。
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。