以下是一个使用functools.lru_cache
装饰器来缓存函数的结果的例子,它可以避免重复计算,从而减少内存使用:
import functools
@functools.lru_cache(maxsize=None)
def calculate_sum(numbers):
# 计算列表中所有数字的和
return sum(numbers)
numbers = [1, 2, 3, 4, 5]
# 第一次调用 calculate_sum 函数,会计算并缓存结果
result1 = calculate_sum(numbers)
# 第二次调用 calculate_sum 函数,会直接返回缓存中的结果,不会再次计算
result2 = calculate_sum(numbers)
在这个例子中,使用@functools.lru_cache(maxsize=None)
装饰器来缓存calculate_sum
函数的结果。当调用calculate_sum
函数时,它会计算并缓存结果。如果再次调用calculate_sum
函数,它会直接返回缓存中的结果,而不会再次计算,从而避免了重复计算,减少了内存使用。