Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python functools

作者:让固执流亡丶   发布日期:2026-02-05   浏览:51

from functools import lru_cache

# 使用 lru_cache 装饰器来缓存函数的返回值,以提高性能
@lru_cache(maxsize=128)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# 示例调用
print(fibonacci(10))  # 输出: 55

# 解释说明:
# lru_cache 是 functools 模块中的一个装饰器,用于缓存函数的返回值。
# 它可以显著提高递归函数(如斐波那契数列)的性能,因为它会存储最近使用过的输入及其对应的输出。
# 当再次调用相同的输入时,它将直接返回缓存的结果,而不是重新计算。
from functools import partial

# 使用 partial 来创建新的函数,这些新函数具有固定的参数值
def multiply(x, y):
    return x * y

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

# 示例调用
print(double(4))  # 输出: 8

# 解释说明:
# partial 是 functools 模块中的一个工具,用于创建部分应用函数。
# 它允许你固定某些参数,从而减少需要传递的参数数量。
# 在这个例子中,我们创建了一个新的函数 double,它总是将第一个参数固定为 2。
from functools import reduce

# 使用 reduce 来对列表进行累积操作
numbers = [1, 2, 3, 4, 5]

# 计算列表中所有元素的乘积
product = reduce(lambda x, y: x * y, numbers)

# 示例调用
print(product)  # 输出: 120

# 解释说明:
# reduce 是 functools 模块中的一个函数,用于对可迭代对象中的元素进行累积操作。
# 它接受一个二元函数和一个可迭代对象,并将该函数应用于可迭代对象的第一个和第二个元素,
# 然后将结果与第三个元素一起应用该函数,依此类推,直到处理完所有元素。
# 在这个例子中,我们使用 lambda 函数来计算列表中所有元素的乘积。

上一篇:python base64加密

下一篇:python设置全局变量

大家都在看

python excel 库

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

python 私有函数

python ord和chr

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站