Python - AI 助手

Python functools cache() 函数



Python 的cache() 函数通过存储程序确定的结果来指定应用程序性能。类似地,缓存涉及存储在函数调用期间计算的值以供将来重用,这称为记忆化。

我们可以对大型数据集执行重复操作。通过使用缓存结果,我们可以最大程度地减少在数据集上重复执行计算的时间和成本。

语法

以下是cache() 函数的语法。

@functools.cache()

参数

cache() 装饰器不接受任何参数。

返回值

此函数返回装饰函数的缓存版本。

示例 1

在下面的示例中,阶乘函数使用cache() 函数计算数字的阶乘并返回缓存值。

import functools
@functools.cache
def fact(x):
    if x == 0:
        return 1
    else:
        return x * fact(x - 1)
print(fact(29))  
print(fact(6)) 

输出

结果如下生成:

8841761993739701954543616000000
720

示例 2

我们现在使用平方函数,该函数使用cache() 函数计算数字的平方。如果再次使用相同的参数调用该函数,它将返回缓存的结果,而不是重新计算程序。

import functools
@functools.cache
def fact(x):
    return x * fact(x-1) if x else 1
print(fact(20))
print(fact(20)) #stored result, no need for recalculation 

输出

代码如下生成:

2432902008176640000
2432902008176640000

示例 3

这里,我们正在寻找斐波那契函数,该函数使用**cache()**函数计算给定输入的斐波那契数。

import functools
@functools.cache
def fib(x):
    if x <= 1:
        return x
    return fib(x - 1) + fib(x - 2)
print(fib(20))  
print(fib(10)) 

输出

输出如下获得:

6765
55
python_modules.htm
广告