python装饰器原理 | 常用装饰器使用(@cache, @lru_cache)

这篇具有很好参考价值的文章主要介绍了python装饰器原理 | 常用装饰器使用(@cache, @lru_cache)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🚀 关于python的装饰器原理介绍可看这里,讲的挺简洁易懂:python装饰器原理
⭐ 弄懂装饰器原理后,来学学常用装饰器。

1、@cache, @lru_cache

也就是一种装饰在被执行的函数上,将其执行的结果缓存起来,当下次请求的时候,如果请求该函数的传参未变则直接返回缓存起来的结果而不再执行函数的一种缓存装饰器。文章来源地址https://www.toymoban.com/news/detail-424951.html

  • 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。m

到了这里,关于python装饰器原理 | 常用装饰器使用(@cache, @lru_cache)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构---LRU CACHE

    通过之前的学习我们知道计算机在处理任务的时候是先将数据从硬盘中提取出来加载进内存,然后再将内存中的数据加载进入cpu进行计算,但是这里存在一个问题cpu的计算速度非常快,而内存中加载数据的速度又很慢,所以为了提供整机的工作效率我们就得在内存和cpu计算机

    2024年02月15日
    浏览(42)
  • 数据结构:LRU Cache

    LRU 是 Least Recently Used 的缩写,意思是最近最少使用,它是一种 Cache 替换算法。 什么是 Cache ?狭义的 Cache 指的是位于 CPU 和主存间的快速 RAM , 通常它不像系统主存那样使用 DRAM 技术,而使用昂贵但较快速的 SRAM 技术。 广义上的 Cache 指的是位于速度相差较大的两种硬件之间

    2024年02月19日
    浏览(34)
  • cache教程1.LRU 缓存淘汰策略

    这一节实现LRU算法,要理解明白其使用的数据结构。 Cache的缓存全部存储在内存中,内存是有限的,因此不可能无限制地添加数据。当占用内存超过了给定的内存大小时候,就需要从缓存中移除一条或多条数据了。我们肯定希望尽可能移除“没用”的数据,那如何判定数据“

    2024年02月04日
    浏览(47)
  • LinkedHashMap实现LRU缓存cache机制,Kotlin

    LinkedHashMap的accessOrder=true后,访问LinkedHashMap里面存储的元素,LinkedHashMap就会把该元素移动到最尾部。利用这一点,可以设置一个缓存的上限值,当存入的缓存数理超过上限值后,删掉LinkedHashMap头部元素即可(因为最头部意味着没有被多少使用)。 至于删除最头部的元素,我

    2024年02月09日
    浏览(38)
  • [力扣146. LRU 缓存 ](https://leetcode.cn/problems/lru-cache/description/)

    力扣146. LRU 缓存 使用LinkedHashmap(HashMap的子类,能够记住插入数据的顺序). LRU是Lease Recently User的缩写,意思是最近 最少使用。比如设计一个文件缓存系统,每个文件有自己的大小和访问时间,文件缓存系统有总的大小,当往这个文件系统中放入新的文件时,如果发现超出文件

    2024年02月11日
    浏览(53)
  • python中的装饰器原理和作用

    装饰器的作用就是用一个新函数封装旧函数(是旧函数代码不变的情况下增加功能)然后会返回一个新函数,新函数就叫做装饰器,一般为了简化装饰器会用语法糖@新函数来简化 例子: 这是一段代码,但功能太少,要对这个进行增强,但又不能改变代码。 现在我们的需求是

    2024年02月05日
    浏览(31)
  • Spring Cache的介绍以及使用方法、常用注解

    Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能. Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。 CacheManager是Spring提供的各种缓存技术抽象接口。 针对不同的缓存

    2024年02月16日
    浏览(39)
  • Python元编程-装饰器介绍、使用

    目录 一、Python元编程装饰器介绍 二、装饰器使用 1. 实现认证和授权功能 2.实现缓存功能 3.实现日志输出功能 三、附录 1. logging.basicConfig介绍 2. 精确到毫秒,打印时间 方法一:使用datetime 方法二:使用time Python元编程是指在Python中使用语言自身来创建、修改、或操纵其它代

    2024年02月14日
    浏览(36)
  • python使用装饰器记录方法耗时

    python使用修饰器记录方法耗时,目的是每当方法执行完后,可以记录该方法耗时,而不需要在每个方法的执行前后,去创建一个临时变量,来记录耗时。 方式一(不推荐): 在每个方法的执行前后,去创建一个临时变量,来记录耗时,代码如下,缺点在于,如果有10个、10

    2024年02月13日
    浏览(50)
  • Python 借助装饰器,实现父对象使用子对象的方法!

    这个需求的背景是这样的,我们在写复杂代码时候,可能会用到 Python 的类继承的方法,即子对象继承父对象的一些属性方法。 在这个过程中,有一些方法的整体逻辑是子对象和父对象都通用的,如果每一个子对象都去重写一次,那么冗余的代码很多、且不优雅。 因此,本文

    2024年01月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包