推荐答案
-- -------------------- ---- ------- ---- --------- ------ -------- ------- --------- - -- ------- ----- --- ----------- --- ------ - - - ------ - ----------------- -- ---------------- - --- - - -- ------ ------ ------- - --- -- -- -- ------- - ------------- -- -- - - -- -------- -------------- - --- -- - -- --------- -------- ------------------------ --- ------------- -- - - -- ------ - ------ -------------- - -------------- -------------------- - --- --
本题详细解读
partial
函数
partial
是 functools
模块中的一个高阶函数,用于部分应用一个函数。它允许你固定函数的一部分参数,从而创建一个新的函数。这在需要重复调用某个函数但部分参数固定的情况下非常有用。
- 示例:
from functools import partial def multiply(x, y): return x * y double = partial(multiply, 2) print(double(4)) # 输出: 8
在这个例子中,partial
固定了multiply
函数的第一个参数为2
,创建了一个新的函数double
,它只需要一个参数y
。
reduce
函数
reduce
是 functools
模块中的另一个高阶函数,用于对序列中的元素进行累积计算。它接受一个二元函数和一个序列,并将序列中的元素依次传递给二元函数进行累积计算。
- 示例:
from functools import reduce numbers = [1, 2, 3, 4] product = reduce(lambda x, y: x * y, numbers) print(product) # 输出: 24
在这个例子中,reduce
使用lambda
函数对numbers
列表中的元素进行累积乘法计算,最终得到24
。
lru_cache
装饰器
lru_cache
是 functools
模块中的一个装饰器,用于缓存函数的结果。它通过最近最少使用(LRU)策略来管理缓存,从而避免重复计算,提高函数执行效率。
- 示例:
-- -------------------- ---- ------- ---- --------- ------ --------- ------------------------ --- ------------- -- - - -- ------ - ------ -------------- - -------------- -------------------- - --- --
在这个例子中,lru_cache
装饰器缓存了fibonacci
函数的结果,避免了重复计算,显著提高了计算斐波那契数列的效率。