高阶函数

高阶函数

高阶函数(Higher-Order Function) 是函数式编程中的一个核心概念,它在 Python 和 JavaScript 等语言中都非常重要。高阶函数的特点是 **可以接受函数作为参数,或者返回函数作为结果

1. 什么是高阶函数?

高阶函数是指满足以下至少一个条件的函数:

接受一个或多个函数作为参数。

返回一个函数作为结果。

换句话说,高阶函数是对函数进行操作的函数。

2. 高阶函数的特点

函数是一等公民:在支持高阶函数的语言中,函数可以像普通变量一样被传递、赋值和返回。

抽象能力强:高阶函数可以将通用的逻辑抽象出来,减少代码重复。

支持函数式编程:高阶函数是函数式编程的基础,常用于实现映射(map)、过滤(filter)、归约(reduce)等操作。

3. 高阶函数的使用场景

高阶函数常用于以下场景:

将函数作为参数传递:比如 map()、filter()、sorted() 等内置函数。

将函数作为返回值:比如闭包、装饰器等。

抽象通用逻辑:比如将重复的代码抽象为高阶函数。

4. 高阶函数示例

示例 1:接受函数作为参数

不使用高阶函数,求两个数的绝对值和

def getSum(a, b):

return abs(a) + abs(b)

print(getSum(1, 2))

使用高阶函数

# 定义一个高阶函数,f 是一个函数

def getSum2(a, b, f):

return f(a) + f(b) # 每个值传入 f 再求和,f 就灵活了,可以是任意函数

# 使用高阶函数,求两个数之和,abs 是 python 内置的函数,这里只是传入函数名,不要带小括号

print(getSum2(1, 2, abs))

# 也可以使用自定义的函数传入高阶函数

def fun(a):

return a ** 2

print(getSum2(1, 2, fun)) # 使用高阶函数,求两个数的平方和

# 结合 lambda,也是求两个数的平方和

print(getSum2(1, 2, lambda n: n ** 2))

示例 2:返回函数作为结果

inner_fun 执行的时候会使用 outer_fun 的参数,又是闭包的示例

# 定义一个高阶函数,返回一个函数

def outer_fun(n):

def inner_fun(x):

return x * n

return inner_fun # 注意这里返回的是函数名(不要加括号)

# 使用高阶函数创建一个乘以 2 的函数

inner_fun = outer_fun(2)

print(inner_fun(5)) # 输出: 10

# 直接调用

print(outer_fun(2)(5)) # 输出 10

✨ 相关推荐

别人评价我矫情应怎样回复(别人说你矫情怎么反驳)
365体育管网登录网站

别人评价我矫情应怎样回复(别人说你矫情怎么反驳)

📅 07-25 👀 4415
答疑 | 短信字体为何突然变大?
h365官方登录平台

答疑 | 短信字体为何突然变大?

📅 01-17 👀 8002
韩国时间→北京时间
365平台怎么注册

韩国时间→北京时间

📅 10-24 👀 9619