Python高阶函数(Higher-order Function)
abs()这个内置函数来得到一个数的绝对值
print(abs(-100)) #输出:100
我们把代码修改下,把abs赋值给一个变量:
f = abs
print(f(-100)) #输出:100
函数名其实就是指向函数的变量, abs(-100)是函数调用,而其名称abs是函数本身,我们可以将其赋值给变量,这样一来,变量可以指向(引用)函数,这时变量就获得了函数的功能,如上例中的 f ,直接调用f()和直接调用abs()完全相同。
既然变量可以指向函数,函数的参数能接收变量,那么,一个函数就可以接收另一个函数作为参数,这是高阶函数的一种情况。
什么是高阶函数?能接受函数名作为参数传入或把函数名做为结果值返回的函数,称为高阶函数。
具体说来,只要满足下面的任意一个条件就是高阶函数:
1、接受另外一个函数名作为参数传。
2、返回值(return)为另外一个函数名。
接受另外一个函数名作为参数传的情况,示例源码如下:
def fun():
print("这是fun函数输出")
def high_fun(func): #接受另外一个函数名作为参数传
print("high_fun函数输出")
# 在函数内部,通过传入的函数参数调用
func()
high_fun(fun)