🚀 关于python的装饰器原理介绍可看这里,讲的挺简洁易懂:python装饰器原理 ⭐ 弄懂装饰器原理后,来学学常用装饰器。
文章目录
1、@cache, @lru_cache
1、@cache, @lru_cache
也就是一种装饰在被执行的函数上,将其执行的结果缓存起来,当下次请求的时候,如果请求该函数的传参未变则直接返回缓存起来的结果而不再执行函数的一种缓存装饰器。
Python 内置模块 functools 提供的高阶函数 @functools.cache 是简单轻量级无长度限制的函数缓存,这种缓存有时称为 “memoize”(记忆化)。它是 3.9 新版功能,是在 lru_cache 缓存基础上简化了的对无限长度缓存。
语法为 @functools.cache(user_function),创建一个查找函数参数的字典的简单包装器。 因为它不需要移出旧值,缓存大小没有限制,所以比带有大小限制的 lru_cache() 更小更快。这个 @cache 装饰器是 Python 3.9 版中的新功能,在此之前,您可以通过 @lru_cache(maxsize=None) 获得相同的效果。
lru_cache有两个参数:maxsize、typed。maxsize:如果不指定传参则默认值为128,表示最多缓存128个返回结果,当达到了128个时,有新的结果要保存时,则会删除最旧的那个结果。如果maxsize传入为No