python函数缓存之lru_cache
lru_cachelru_cache 是 Python 标准库 functools 模块中的一个装饰器,用于实现缓存功能。它通过缓存函数的返回值来提高函数的执行效率,特别是对于计算密集型函数或具有大量重复输入的函数。 lru_cache 的全称是 “Least Recently Used Cache”,即最近最少使用缓存。它使用一个字典来存储函数的返回值,字典的键是函数的参数,值是函数的返回值。当函数被调用时,lru_cache 会首先检查参数是否已经在缓存中,如果在,则直接返回缓存中的值;如果不在,则计算函数的返回值,并将结果存入缓存。 lru_cache 有一些可选参数,可以用来控制缓存的大小和过期时间。 1234567from functools import lru_cache@lru_cache(maxsize=128) def fibonacci(n): if n < 2: return n return fibonacci(n-1) + fibonacci(n-2) 在上面的例子中,lru_cache 装饰器将 fibonacci...
python的基类object当中包含那些常用的内置方法
object在 Python 中,object 类是所有类的基类。它定义了一些内置方法,这些方法在所有对象中都可用。以下是一些常见的 object 类的内置方法及其作用: __init__(self, ...) 作用: 构造函数,用于初始化对象。当创建对象时,这个方法会被自动调用。 示例:12345class MyClass: def __init__(self, value): self.value = valueobj = MyClass(10) __del__(self) 作用: 析构函数,当对象被销毁时,这个方法会被调用。注意,Python 的垃圾回收机制会自动处理对象的销毁,所以这个方法通常不需要手动调用。 示例:123456class MyClass: def __del__(self): print("Object is being destroyed")obj = MyClass()del obj # 或者 obj = None __str__(self) 作用:...
(fastapi八)如何捕获一些特殊的状态码
Exception在 Python 中,Exception 是所有内置异常的基类。通过继承 Exception,你可以创建自定义的异常类型,以便在代码中处理特定的错误情况。以下是对 Exception 的详细解释以及一些高级案例。 基本用法创建自定义异常你可以通过继承 Exception 来创建自定义异常类: 123456class MyCustomError(Exception): def __init__(self, message: str): self.message = message def __str__(self): return self.message 抛出自定义异常在函数中,你可以使用 raise 关键字抛出自定义异常: 1234def divide(a: int, b: int) -> int: if b == 0: raise MyCustomError("Cannot divide by zero") return a / b 捕获自定义异常你可以使用...
时区与时间
GMT:格林威治时间格林威治(也称:格林尼治)(Greenwich Mean Time,简称G.M.T.) 时间,也叫世界时(Universal Time),也叫世界标准时间。是指位于英国伦敦郊区的【皇家格林尼治天文台】的标准时间,是本初子午线上的地方时,是0时区的区时。 众所周知,中国统一用的北京时间是位于东八区(+8)与标准时间相差8小时。什么含义?举个例子:若GMT(英国伦敦的格林威治)现在是上午11点,那中国北京时间现在就是 11 + 8 = 19点(下午7点)。将这个公式再抽象一下,可表示为:本地时间=GMT+时区差北京位于东八区,则时区差N=+8,美国纽约位于西五区,则时区差N=-5。这么算来,若北京时间是晚上23点的话,美国纽约时间就是当天上午10点(23 - 8 - 5 = 10) 凭什么格林威治作为标准时间? 时区(Time zone)是地球上的区域使用同一个时间定义。以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时),为了克服时间上的混乱,1884年在华盛顿召开了一次国际经度会议(又称国际子午线会议),...
关于opencv的libGL报错
错误在配云端GPU服务器时,出现这个错误 123File "/usr/local/lib/python3.6/dist-packages/cv2/__init__.py", line 8, in <module> from .cv2 import *ImportError: libGL.so.1: cannot open shared object file: No such file or directory 解决方法(easy) setup 에서 cv2 설치 오류가 발생합니다. · Issue #78 · Korea-Health-Datathon/KHD2020 · GitHub 卸载 pip uninstall opencv-python 安装 pip install opencv-python-headless 在Stack Overflow上有其他回答 Ubuntu系统在docker中出错,将以下行添加到您的 Dockerfile: 123# ubuntu系统RUN apt-get updateRUN apt-get...
sqlalchemy库的2.0版本问题
在更新项目的python库的时候,更新完毕后使用sqlalchemy执行engine.execute语句的时候报错,然后发现新的sqlalchemy中根本没有这个方法。 1AttributeError: 'Engine' object has no attribute 'execute' 找了半天原因发现sqlalchemy2.0后取消了engine.execute方法。需要通过Connection中的execute方法去执行sql语句,而且需要通过sqlalchemy.text对象去传递sql语句。好消息是1.0其实并没有放弃更新,这个实际上已经是两个库了,不能算一个东西,就像是python2跟python3的差距一样大。 2.0版本写法如下: 1234567from sqlalchemy import create_engine, textengine = create_engine("配置信息")sqltext = text("select * from ...;")conn =...
无联网下载谷歌浏览器
最近因为swagger的更新,需要在内网更新谷歌浏览器,但是真到下载的时候发现官网下载的安装包都是需要联网安装的,一下子拔我搞蒙了。翻了一下,也没有翻到下载完整安装包的地址,又不想去一些奇怪的网站下载,因此通过自己搜索找到了一个地址:https://www.google.cn/chrome/index.html?standalone=1 Standalone这个单词,它本身的意思就是脱机的,单独的意思,即不依赖网络而存在的本地安装版本。不仅是在IE 8浏览器中,在其他浏览器中我们想要下载本地安装包时也都可以采用这个方法。这个真的是一个很小的问题,但是耽误了我十多分钟,因此记录一下,避免以后更新的时候又要来找一遍。
vscode的lunch.josn文件解析
基础配置12345678910111213141516171819202122232425262728293031323334{ "version": "0.2.0", "configurations": [ { "name": "Python: run_classifier.py", "type": "python", "request": "launch", // "program": "${workspaceFolder}/test.py", // "program":...
NVIDIA环境安装
操作系统环境系统信息: Linux user-Super-Server 5.15.0-97-generic #107~20.04.1-Ubuntu SMP Fri Feb 9 14:20:11 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 驱动环境安装包 cuda版本: cuda_12.2.2_535.104.05_linux.run NVIDIA版本:...














