当前位置: 首页 > news >正文

Python 函数缓存

  • 作用
    缓存不同参数组合的计算结果,命中缓存可以直接返回结果。
  • 使用示例
    import time
    from functools import lru_cache@lru_cache(maxsize=128)  # 指定128个不同参数组合的调用结果,lru策略,设置为None表示无上限
    def test(step: int, turns: int) -> int:total = 0for _ in range(turns):total += stepreturn total# 打印初始的缓存信息
    print(test.cache_info())# 测试缓存创建前函数耗时
    start = time.time()
    test(1, 1000 * 1000 * 30)
    end = time.time()
    print(end - start)
    print(test.cache_info())# 测试缓存创建后函数耗时
    start = time.time()
    test(1, 1000 * 1000 * 30)
    end = time.time()
    print(end - start)
    print(test.cache_info())# 清理缓存
    test.cache_clear()
    # 测试清理缓存后函数耗时
    start = time.time()
    test(1, 1000 * 1000 * 30)
    end = time.time()
    print(end - start)
  • lru缓存策略补充介绍
    """
    lru策略:
    1.缓存满了怎么办: 当缓存达到 maxsize 限制时,需要为新的缓存项腾出空间
    2.淘汰规则: LRU 会淘汰最长时间没有被访问过的缓存项
    3.访问更新: 每次访问缓存项(无论是读取还是写入),都会将该项标记为"最近使用"
    """
  • 注意事项
    1.参数不能有可变类型,只能是不可变类型。
    2.函数内计算过程不能依赖外部变量,否则可能导致相同参数组合产出不同结果,但是函数给出已缓存结果,导致程序出现bug。

     

相关文章:

Python 函数缓存

作用缓存不同参数组合的计算结果,命中缓存可以直接返回结果。使用示例import time from functools import lru_cache@lru_cache(maxsize=128) # 指定128个不同参数组合的调用结果,lru策略,设置为None表示无上限 def test(step: int, turns: int) -> int:total = 0for _ i…...

乐蜂直播购物商城小程序介绍

一、概述总结 乐蜂直播购物商城小程序系统,是一款依托微擎系统交付的直播电商解决方案。微擎系统是基于 PHP 开发的开源应用生态系统,可快速搭建微信公众号、小程序等应用,同时支持 Web 系统开发与部署,乐蜂直播购物商城小程序系统借助这一基础,实现了微信小程序内直播带货…...

基于C#实现基恩士PLC通信

一、通信协议选择 基恩士PLC支持多种通信协议,推荐优先采用以下两种方案:TCP/IP Socket通信(通用性强,适用于以太网接口设备) Modbus TCP协议(标准工业协议,兼容性强)二、Socket通信实现(基于TCP/IP) 1. 基础通信类设计 using System.Net.Sockets; using System.Text…...

VIPSHOP 门店会员营销管家:助力实体商家数字化运营

一、概述总结 VIPSHOP 门店会员营销管家是针对实体商家在微信生态开展会员营销与销售的工具,依托微擎系统实现交付与更新。其核心目标是帮助商家解决 “获客难、留客难、老客激活难” 的痛点,通过构建会员等级体系、整合多元营销功能,将线下流量转化为线上私域资产,形成 “…...

Rhino 8.10 中文版下载安装步骤(附详细图文说明)

软件介绍 犀牛Rhino 8.10是一款功能强大的三维建模软件,它是基于NURBS(非均匀有理B样条)技术的建模工具,广泛应用于工业设计、建筑设计、珠宝设计、三维动画等多个领域。以下是犀牛Rhino 8.10的简介: 1. 功能特点: – NURBS建模: Rhino 8.10以NURBS建模功能为核心,能够…...

深入解析:第十四届蓝桥杯青少组C++选拔赛[2022.12.18]第二部分编程题(2、字符翻转)

深入解析:第十四届蓝桥杯青少组C++选拔赛[2022.12.18]第二部分编程题(2、字符翻转)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …...

指令的执行过程

指令周期 cpu从主存中每取出一条指令所需要的全部时间 开始->取指令->对指令译码->执行指令->取下一条指令pc+1 指令周期常常使用若干个机器周期来表示,机器周期又叫cpu周期 一个机器周期包含若干个时钟周期(也被称作节拍,t周期,cpu时钟周期 也是cpu操作的基本…...

ALINX 助力希腊 SpaceDot AcubeSAT 卫星任务,2026 将入太空

ALINX 助力希腊 SpaceDot AcubeSAT 卫星任务,2026 将入太空pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New",…...

Ubuntu 安装JDK8

# 卸载当前的 JRE sudo apt remove openjdk-8-jre-headless# 安装完整的 JDK sudo apt install openjdk-8-jdk# 验证安装 java -version javac -version jps -l...

负载均衡层详解part 4

# keepaviled高可用 ## 一、keepaviled简介 负载均衡由七层负载均衡衍生出多级负载均衡,多出来四层负载均衡,再往前分就是DNS轮询,各种简单的、复杂的场景搭配用就可以了,有一个问题始终没有解决,整个集群架构中有的点是有单点故障问题的,怎么解决这个单点故障问题呢?就…...

重磅!中国科学引文数据库(CSCD)收录期刊(2025-2026)目录公布!共收录1464种期刊!

经过中国科学引文数据库(Chinese Science Citation Database,简称CSCD)定量遴选、专家定性评估, 2025-2026年度中国科学引文数据库收录来源期刊1464种,其中英文版期刊418种,中文版期刊1046种。 中国科学引文数据库来源期刊列表(2025-2026年度),因为篇幅较长,感兴趣(C…...

Flash Attenion算法原理

Flash Attenion算法原理 1.1 Flash Attention Step-by-Step1.2 Softmax \( \text{softmax}(x_i) = \frac{e^{x_i}}{\sum_{k=1}^{N} e^{x_k}} \)import torch A = torch.randn(2, 6) A_exp = torch.exp(A) A_sum = torch.sum(A_exp, dim=1).unsqueeze(1) P = A_exp / A_sum #广…...

电流探头消磁失败的原因与解决策略

在电子测量领域,电流探头的精准度是确保测试数据可靠性的关键因素,而消磁操作则是维持其测量精度的重要环节。消磁的主要目的是消除探头内部磁芯的剩磁,防止其对后续测量造成干扰。然而,在实际操作过程中,电流探头的消磁失败现象时有发生,这不仅会降低测量结果的准确性,…...

【算法】双指针(四)-盛最多水的容器 - 实践

【算法】双指针(四)-盛最多水的容器 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impo…...

程序设计小学期小计

小学期游记程序设计小学期小计 昨天奋斗到晚 12 点,算是完成了小游戏的所有功能,小游戏的主体流程算是全部完成了。写一篇小计记录一下。 截至目前,这个项目已经有了 \(233\) 次提交,若干次的合并,构筑起了这个小游戏。 过程 我们组当初提出制作 3D 的网页游戏,这是往届前…...

3dma渲染噪点成因排查及优化方案 - 详解

3dma渲染噪点成因排查及优化方案 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importa…...

hadoop配置日志聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。日志聚集功能好处:可以方便地查看到程序运行详情,方便开发调试。 注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。[hadoop@hadoop101(192.168.0.101) /opt/modul…...

vxe-tree-select 树形下拉框当使用懒加载数据时如何回显

vxe-tree-select 树形下拉框当使用懒加载数据时如何回显 当使用懒加载或者当某个选项被删除时,显示自定义回显;比如使用懒加载树列表,由于数据未被加载,这时候已选的数据就不能被回显,导致显示了 value值,而不是 label。 还有一种场景就是组织架构人员选择,当选择某个人…...

GPT PMBR 大小不符解决方法

GPT PMBR 大小不符解决方法服务器输入fdisk -l 报GPT PMBR 大小不符(104857599 != 209715199),将用写入予以更正。The backup GPT table is not on the end of the device. This problem will be corrected by write. 通过采用parted -l就行修复,如下图 修复后,fdisk -…...

CodeFormer一款既能图像修复、还能视频增强去码的AI软件(下载介绍)

CodeFormer是一款强大的人工智能工具,主要用于图像和视频的修复和增强。它基于深度学习技术,特别是人脸复原模型,可以轻松修复和增强面部图像,提升照片和视频的质量和视觉效果工作原理 1、通过自动编码器实现人脸的变换,包括色彩化、清晰化、去马赛克修复等功能 2、采用了…...

PCB的导线电阻阻抗批量自动计算EXCEL表格工具 公式

https://wwqx.lanzoul.com/iv1Fg36h5xwh 密码:hcko...

微信协议开发个微API

微信协议开发个微API常见开发功能: 好友管理: 维护好友列表:包括添加、删除、修改好友信息。 分组管理:创建、编辑、删除标签,以便更好地组织好友。 消息管理: 信息发送:支持发送各种类型的消息,包括文本、图片、名片、动图表情、小程序、文件、视频和URL链接及防撤回等…...

Milvus Lite

Milvus (标准版):就像一个部署在专业机房、由多台服务器组成的大型数据中心。它性能强大、稳定可靠、支持高并发,是生产环境的不二之选。部署它,通常需要使用Docker或在Linux服务器上进行。Milvus Lite (轻量版):就像一台功能强大、开箱即用的个人开发笔记本。它把数据中心…...

如何解除 pip install 安装报错 ModuleNotFoundError: No module named ‘win32api’ 问题

如何解除 pip install 安装报错 ModuleNotFoundError: No module named ‘win32api’ 问题pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…...

hbase学习一

什么是HBase? HBase是一个基于HDFS的、分布式、可扩展、面向列的NoSQL数据库。它起源于Google的BigTable论文,是Apache Hadoop生态系统的重要组成部分,专门用于处理海量数据的随机、实时读写访问。为什么需要HBase? Hadoop HDFS适合批处理,但无法进行随机读写。MapReduce适…...

【光照】[漫反射diffuse]以UnityURP为例

这篇文章介绍了Unity URP渲染管线中漫反射光照的实现原理和流程。主要内容包括:1. 漫反射遵循兰伯特定律,通过法线准备、光源方向计算、点积运算等步骤实现;2. URP的具体实现细节,如法线处理、光源计算和多光源支持;3. 关键代码示例,包括漫反射计算和完整光照流程;4. 快…...

OI线下比赛注意事项

这篇写挺好 https://www.cnblogs.com/dengstar/p/17069134.html...

n8n实践-使用n8n搭建一个定时发送天气预报邮件的工作流

前言传统的定时任务,一般是使用linux cron定时运行某个位置的某个脚本。需要准备各种运行环境; 脚本比较分散,管理起来相对麻烦; 需要有一定的代码能力,比如常见的shell、python等等; 不方便接入ai, 更换ai也比较麻烦。工作流的好处是:把定时任务、触发任务等统一管理; …...

Cython-编程学习指南第二版-全-

Cython 编程学习指南第二版(全)原文:zh.annas-archive.org/md5/0bc691743f26fcdcabcb6840b706a834 译者:飞龙 协议:CC BY-NC-SA 4.0前言 Cython 是一个工具,它使得编写 Python 的原生扩展变得和编写 Python 代码一样简单。对于那些不知道的人来说,你可以将 Python 模块实…...

印度尼西亚股票数据API对接实现

环境准备 首先安装必要的依赖包: pip install requests websocket-client pandas numpy基础配置 import requests import json import websocket import threading import time from datetime import datetime# API配置 API_KEY = "YOUR_API_KEY" # 替换为您的实际…...

OpenBMB 发布无分词器 TTS VoxCPM;儿童口语硬件 Dex 融资 480 万美元:拍摄真实物体,对话学习外语丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度的观点」、「有看点的活动」,但内容仅代表编辑的个人观点…...

一天一款实用的AI工具,第1期,AI标题生成工具

本期介绍的是一款专业的标题生成工具,它能帮你产出高质量标题,让点击率提升,让内容被看见。现实问题 在内容创作的世界里,有句话特别扎心: 好的标题=成功的一半。 很多创作者都遇到过这样的困境: 花了一下午写好一篇文章,结果标题平平无奇,点击量惨淡。 明明内容不错,…...

重组蛋白表达避坑指南

重组蛋白表达避坑指南重组蛋白表达是分子生物学、生物技术以及生物医学研究中非常基础却经常“出问题”的环节。一个合适的蛋白表达方案,不仅要能产生足够的产量,还要确保蛋白正确折叠、具有功能、具有良好的纯度与稳定性。一、选择表达系统与宿主:第一个关键决策常见问题不…...

易被忽略的vim中视图模式

常见的都是vim三种模式,但视图模式也不可忽略,主要进行批量操作在 Vim 中,可视模式(Visual Mode)是一种强大的文本选择和编辑模式,允许你高亮选中一段文本,然后对其进行操作(如复制、删除、替换、注释等)。 一:三种可视模式1.字符可视模式 用途: 精确选择字符或单词…...

电商核心业务 - 指南

电商核心业务 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14p…...

一言

一些日常的感想,为了节约时间,为了不暴露太多东西,为了不挑起矛盾,内容会很简洁,在合适的时候公布详情。9.17 说好的向阳而生呢?冷静啊,兄弟。 9.18 你们不相信我,我必将证明我,夺回属于我的荣耀。...

ai

https://qsqs.life/login?redirect=/system/dashboard本文来自博客园,作者:zjxgdq,转载请注明原文链接:https://www.cnblogs.com/zjxzhj/p/19098509...

LlamaIndex 项目深度技术分析 - 详解

LlamaIndex 项目深度技术分析 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important;…...

深入解析:css消除图片下的白边

深入解析:css消除图片下的白边pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font…...

linux增加网卡ip地址

linux增加网卡ip地址example ip addr add 192.168.5.124/24 dev eth0 label eth0:5 ifconfig eth0:5 up ip addr del 192.168.1.100/24 dev eth0 example ip addr add 192.168.10.199/24 dev eth0 label eth0:10 route add default gw 192.168.10.254reference: https://blog.c…...

Python 包与环境管理简史:从混乱到优雅

自动包管理工具的先驱:easy_install 在一切规范化工具出现之前,Python 的包管理是相当原始的。开发者们需要把第三方库的源码下载下来,手动放到项目目录里。 为了解决自动安装包的问题,easy_install 应运而生。 2004年:easy_install——从 0 到 1 的突破 easy_install 是 …...

qoj853 Flat Organization

SOLUTION FROM WUMIN4 题意 给出一个 \(n\) 个点的带权竞赛图(定向完全图),你可以进行任意次操作,每次操作反转一条边,代价为边权,求使得图强连通的最小代价和与方案,或输出无解。 \(n\le 2000\)。 思路 我们先考虑算出这张图的所有 SCC 并进行缩点,容易发现缩点后图是…...

shell命令中循环执行操作的命令

shell命令中循环执行操作的命令reference: for i in $(seq 1 10000); do echo "Iteration $i" && echo "Iteration $i"; done for i in $(seq 1 10000); do cat /sys/class/net/eth0/carrier && sleep 1; done for i in $(seq 1 999999); …...

2025年9月中国数据库排行榜:达梦挺进榜眼位,崖山首入前十强

9月墨天轮排行榜解读已出炉!本月前十变动较大,老将突围、新秀崛起,达梦凭借强劲势头跃升至第二位、TiDB排名上升、崖山首次闯入前十,此外还有一些产品表现亮眼!本月墨天轮社区的中国数据库排行榜再起波澜。达梦凭借强劲势头跃升至第二位,崖山则首次闯入前十,既展现了“老…...

基于QEMU模拟器搭建Builtroot下的QT开发环境

基于QEMU模拟器搭建Builtroot下的QT开发环境https://www.cnblogs.com/arnoldlu/p/17250728.html...

vlan

vlanhttps://zhuanlan.zhihu.com/p/385949949...

OpenSSH漏洞修复

前期准备 (先使用Telnet远程连接工具,连接服务器,确保Telnet连接正常,SSH连接后进行漏洞修复升级(防止修复失败,导致远程连接无法连接时,可以通过另一个远程工具连接进行恢复) telnet安装与开启:https://www.cnblogs.com/aerfazhe/p/19098482 准备离线升级安装包 Open…...

windosw 配置arp绑定

windosw 配置arp绑定配置静态arp绑定 netsh interface ipv4 add neighbors "以太网" "192.168.98.233" "aa-bb-cc-dd-ee-01" store=active...

2024年最受欢迎的渗透测试工具盘点

本文详细介绍了2024年最受欢迎的渗透测试工具,包括Certipy、BloodHound、Impacket等社区工具和CloudFox、Broken Hill等Bishop Fox自研工具,涵盖网络、云环境、API和LLM安全测试领域。我们最喜爱的渗透测试工具:2024版 又到了黑客工具盘点时间!我们征集了专家团队的意见,为…...

Unity学习 5.6 FBX

FBX保存了模型和纹理,没有贴图,贴图作为静态资源单独存在 FBX的使用 演示:选择*.fbx文件,直接拖到层级窗口 观察节点图标 选中节点,观察Inspector中的操作按钮select可以focus资源路径贴图路径有的模型需要贴图文件 贴图文件路径是约定好的与fbx相同目录,或者同级Texture…...