Python装饰器原理与应用:缓存功能示例

原创 ╰半夏微凉° 2025-01-26 07:54 59阅读 0赞

装饰器是 Python 中的一种特殊语法,它允许我们修改或增强已经存在的函数、方法或者类。缓存装饰器就是一个很好的例子,它通过保存计算结果,来提高函数的执行效率。

下面是一个使用装饰器实现缓存功能的例子:

  1. # 定义一个缓存装饰器
  2. def cache(func):
  3. # 创建一个字典来存储结果
  4. cache_dict = {}
  5. # 定义装饰后的函数
  6. def wrapper(*args, **kwargs):
  7. # 获取参数列表
  8. key = args + tuple(kwargs.items()))
  9. # 如果在缓存中找到了结果,直接返回
  10. if key in cache_dict:
  11. return cache_dict[key]
  12. # 否则,执行原函数并保存结果到缓存
  13. result = func(*args, **kwargs))
  14. cache_dict[key] = result
  15. return result
  16. # 返回装饰后的函数
  17. return wrapper
  18. # 使用装饰器的例子:计算斐波那契数列
  19. @cache
  20. def fibonacci(n):
  21. if n <= 0:
  22. raise ValueError("Input should be a positive integer.")
  23. elif n == 1:
  24. return 0
  25. elif n == 2:
  26. return 1
  27. else:
  28. return fibonacci(n-1) + fibonacci(n-2)
  29. # 测试代码,输出斐波那契数列的前10项
  30. for i in range(10):
  31. print(fibonacci(i)))

在这个例子中,cache 装饰器用于创建一个缓存字典,保存计算结果。当需要计算斐波那契数列时,如果结果已经在缓存中,就直接返回,避免重复计算。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,59人围观)

还没有评论,来说两句吧...

相关阅读