Python 面试题
目录

Python 中如何使用 functools 模块中的高阶函数(如:partial, reduce, lru_cache)?

· 约 3 分钟读完 · 第 157 / 171 章

推荐答案

本题详细解读

partial 函数

partial 是 functools 模块中的一个高阶函数,用于部分应用一个函数。它允许你固定函数的一部分参数,从而创建一个新的函数。这在需要重复调用某个函数但部分参数固定的情况下非常有用。

  • 示例:在这个例子中,partial 固定了 multiply 函数的第一个参数为 2,创建了一个新的函数 double,它只需要一个参数 y。

reduce 函数

reduce 是 functools 模块中的另一个高阶函数,用于对序列中的元素进行累积计算。它接受一个二元函数和一个序列,并将序列中的元素依次传递给二元函数进行累积计算。

  • 示例:在这个例子中,reduce 使用 lambda 函数对 numbers 列表中的元素进行累积乘法计算,最终得到 24。

lru_cache 装饰器

lru_cache 是 functools 模块中的一个装饰器,用于缓存函数的结果。它通过最近最少使用(LRU)策略来管理缓存,从而避免重复计算,提高函数执行效率。

  • 示例:在这个例子中,lru_cache 装饰器缓存了 fibonacci 函数的结果,避免了重复计算,显著提高了计算斐波那契数列的效率。