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
原文地址:https://www.cnblogs.com/haoshine/p/5093517.html