📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
在 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%免费】