Python 高阶函数
1. 变量可以指向函数名
def f(a): return abs(a) h = f(-10) # 这样是调用函数f且把结果传给变量h print h h = f # 这是让变量h指向函数f. print h(-10)
2. 函数名也是变量
def f(a): return abs(a) f = 1 f(-10) # Traceback (most recent call last): # File "x", line 12, in <module> # f(-10) # TypeError: 'int' object is not callable #
函数名f, 指向一个可以计算绝对值的函数。
后执行f = 1时, f指向了整数1.
于是就无法通过f(-10)去调用可以计算出绝对值的函数
3. 高阶函数
既然变量可以指向函数,函数的参数能接收变量
那么把能接收指向函数的变量的函数,称为高阶函数。
举例:
def add(x,y,f): return f(x) + f(y)
其中变量f指向一个可以计算出绝对值的函数,那么称函数add是高阶函数。
print add(5, -6, f) # 11