4. 高阶函数
什么是高阶函数(High Order Function)?
高阶函数是指满足以下任一条件的函数:
- 能够接受一个或多个函数作为参数。
- 能够返回一个函数作为结果。
高阶函数将函数视为“一等公民”,可以像普通变量一样传递和操作,这是函数式编程的核心特性之一。
函数变量
python 的标识符都是变量(关键字除外),他绑定一个对象。 python 中,类、函数、生成器、模块等都是对象。
函数名是一个变量,他绑定的是 一个函数(对象)。
示例
p = print
p("hello world!")
高阶函数特征
- 一个函数可以作为另一个函数的实参传递:
如:
# 一个函数可以作为另一个函数的实参传递:
def myfunc(data, func):
return func(data)
lst = [80, 100, 20, 60, 40]
value = myfunc(lst, max)
print('value:', value) # 100
value = myfunc(lst, sum) # 300
print('value:', value)
- 函数可以作为另一个函数的返回值。
如:
# 函数可以作为另一个函数的返回值。
def get_function(operation):
if operation == '求最大':
return max
elif operation == '求最小':
return min
elif operation == '求和':
return sum
else:
raise ValueError('操作不存在')
lst = [80, 100, 20, 60, 40]
func = get_function('求和')
print(func(lst))
func = get_function('求最大')
print(func(lst))
练习
看懂下面程序在做什么:
def fx(f, x, y):
print(f(x,y))
fx((lambda a, b: a + b), 100, 200)
fx(lambda a, b: a**b, 3, 4)