{site_name}

{site_name}

🌜 搜索

Python functools 是一个内置模块,提供了一些有用的函数,帮助我们操作和组合其他函数

Python 𝄐 0
python functools模块,python functools cache,python functools numpy,python functools socket,python functools安装,python functools.wrap
Python functools 是一个内置模块,提供了一些有用的函数,帮助我们操作和组合其他函数。其中包括缓存、偏函数以及其他高阶函数。

以下是functools模块中几个常见函数的例子:

1. functools.partial() 函数可以创建一个新的函数,这个函数固定了原来函数的部分参数,达到预设值时,直接跳过,并返回剩下参数的结果。

python
import functools

def multiply(x, y):
return x * y

# 创建一个新函数double,将multiply函数的第一个参数固定为2
double = functools.partial(multiply, 2)

print(double(4)) # 输出8,等于multiply(2,4)


2. functools.cache() 函数可以缓存函数的结果,避免多次调用同样的参数,浪费计算资源,提高程序效率。

python
import functools

@functools.cache # 使用cache装饰器
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)

print(fib(30)) # 输出832040,如果没有使用cache,这个运算会非常耗时。


3. functools.reduce()函数可以对序列中的元素进行累积操作。

python
import functools

def product(seq):
return functools.reduce(lambda x, y: x*y, seq)

lst = [1,2,3,4,5]
print(product(lst)) # 输出120,等价于1*2*3*4*5


除了这些函数之外,functools 模块还提供了其他有用的工具函数,例如: functools.wraps()、functools.lru_cache()、functools.singledispatch() 等。