python 一篇文章带你了解高阶函数

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


在 Python 中,高阶函数(Higher-Order Function) 是指:

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

或者返回一个函数作为结果;

有时两者兼具。

高阶函数是函数式编程的重要概念之一,它可以帮助我们写出更简洁、可复用性更高的代码。Python 内置了许多高阶函数,如 map()、filter()、sorted()、reduce() 等,同时你也可以自己定义高阶函数。

✅ 一、什么是高阶函数?

示例1:将函数作为参数传入

def apply_func(fn, x):
    return fn(x)
def square(n):
    return n * n
result = apply_func(square, 5)
print(result)  # 输出: 25

在这个例子中:

apply_func 是一个高阶函数,因为它接收另一个函数 fn 作为参数。

square 是被传入的普通函数。

示例2:函数返回函数​​​​​​​

def make_multiplier(n):
    def multiplier(x):
        return x * n
    return multiplier
double = make_multiplier(2)
triple = make_multiplier(3)
print(double(5))   # 输出: 10
print(triple(5))   # 输出: 15

这个例子中的 make_multiplier 是一个闭包函数,也是一个高阶函数,因为它返回了一个函数。

✅ 二、常见的内置高阶函数

1. map(function, iterable)

对可迭代对象中的每个元素应用函数,并返回一个新的迭代器。​​​​​​​

numbers = [1, 2, 3, 4]
squared = map(lambda x: x ** 2, numbers)
print(list(squared))  # 输出: [1, 4, 9, 16]

2. filter(function, iterable)

过滤掉不满足条件的元素,保留满足条件的元素。​​​​​​​

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # 输出: [2, 4, 6]

3. sorted(iterable, key=None, reverse=False)

根据指定规则排序。​​​​​​​

names = ["Alice", "Bob", "Charlie"]
sorted_names = sorted(names, key=lambda name: len(name))
print(sorted_names)  # 按长度排序: ['Bob', 'Alice', 'Charlie']

4. reduce(function, iterable[, initializer])

连续应用函数,把可迭代对象“归约”为一个值。需要从 functools 导入。​​​​​​​

from functools import reduce
numbers = [1, 2, 3, 4]
sum_result = reduce(lambda x, y: x + y, numbers)
print(sum_result)  # 输出: 10‍

✅ 三、自定义高阶函数

你可以自己编写高阶函数来封装一些通用逻辑。

示例:通用计算函数​​​​​​​

def compute(operation):
    def calculator(a, b):
        return operation(a, b)
    return calculator
add = compute(lambda a, b: a + b)
multiply = compute(lambda a, b: a * b)
print(add(3, 4))       # 输出: 7
print(multiply(3, 4))  # 输出: 12‍

✅ 四、结合 lambda 使用高阶函数

lambda 表达式非常适合与高阶函数一起使用,可以简化代码。​​​​​​​

# 计算每个数的平方根
import math
nums = [4, 9, 16, 25]
roots = list(map(lambda x: math.sqrt(x), nums))
print(roots)  # 输出: [2.0, 3.0, 4.0, 5.0]
# 找出大于10的数
greater_than_10 = list(filter(lambda x: x > 10, nums))
print(greater_than_10)  # 输出: []‍

✅ 五、高阶函数的优势

✅ 六、总结表格

✅ 七、进阶学习建议

学习更多函数式编程技巧(如柯里化、偏函数等)

结合 itertools 和 functools 模块增强处理能力

尝试使用装饰器(也是一种高阶函数)

在实际项目中尝试用高阶函数替代传统循环结构‍

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值