首页
文章列表
标签墙
返回找工具啦
Python
共 128 篇文章
Python弱引用Weakref实现LRU缓存的内存回收机制
2026-04-24 05:23:09
Python弱引用Weakref实现LRU缓存的内存回收机制 1. 理解引用计数与内存泄漏 Python 使用引用计数机制来管理内存。当一个对象的引用计数降为 0 时,垃圾回收器会立即回收该对象占用的内存。引用计数的数学表达式如下: $$ N{ref} = \sum{i=1}^{k} Ri $$ 其
Python
弱引用
LRU缓存
74
0
Python concurrent.futures.as_completed按完成顺序获取结果
2026-04-24 03:28:59
Python concurrent.futures.ascompleted按完成顺序获取结果 在并发编程中,处理批量任务(如网络请求、文件读写或复杂计算)时,通常会遇到两个核心需求:一是加速执行(利用多线程或多进程并行),二是实时处理结果(谁先跑完先处理谁)。concurrent.futures.a
Python
并发编程
多线程
75
0
Python pickle协议版本对序列化兼容性的影响
2026-04-24 01:27:40
Python pickle协议版本对序列化兼容性的影响 Python 的 pickle 模块虽然方便,但在跨版本或跨环境传输数据时,经常因为协议版本不匹配导致 UnpicklingError。了解并控制协议版本是解决此类兼容性问题的关键。 理解 Pickle 协议版本 Pickle 协议是 Pyth
Python
Pickle
序列化
66
0
Python __all__变量控制模块导出的作用
2026-04-24 00:24:20
Python all变量控制模块导出的作用 编写 Python 模块时,默认情况下所有的公有变量和函数都会被 from module import 语句导入。这通常会导致命名空间污染,将本该在模块内部使用的辅助函数暴露给使用者。all 变量专门用于解决这一问题,它是一个字符串列表,定义了模块的“公共
Python
__all__
模块导出
64
0
Python contextlib.contextmanager简化上下文管理器的写法
2026-04-23 13:23:06
Python contextlib.contextmanager简化上下文管理器的写法 编写 Python 代码时,经常需要管理资源(如文件句柄、数据库连接、锁等),确保在使用完毕后正确释放。传统方式需要创建一个类并实现 enter 和 exit 方法,代码结构冗长且逻辑分散。Python 标准库
Python
上下文管理器
装饰器
73
0
Python abc模块定义抽象基类强制子类实现方法
2026-04-23 00:15:34
Python abc模块定义抽象基类强制子类实现方法 Python 的 abc 模块提供了一种机制,用于定义抽象基类。这就像是一个强制性的合同:父类规定某些方法必须存在,但自己不负责具体实现;任何子类如果不签字履行(实现这些方法),Python 就会拒绝其创建对象。这种机制在大型项目开发中能有效防止
Python
abc模块
抽象基类
71
0
Python import循环导入ImportError的排查与解决
2026-04-22 12:26:07
Python import循环导入ImportError的排查与解决 Python 程序在启动时,如果遇到 ImportError: cannot import name 'X' from partially initialized module 'Y' 或 AttributeError: part
Python
循环导入
导入错误
83
0
Python asyncio与多线程的性能对比:IO密集场景实测
2026-04-21 20:21:54
Python asyncio与多线程的性能对比:IO密集场景实测 在处理网络爬虫、数据库查询或API请求等IO密集型任务时,CPU大部分时间都在等待IO操作完成。为了提升效率,Python提供了多线程和异步IO两种主流并发方案。本文将通过模拟访问500台数据库的场景,实测对比两者的性能差异,并解析背
Python
Asyncio
多线程
77
0
Python多线程为什么比单线程还慢?GIL锁的影响实测
2026-04-21 05:21:43
Python多线程为什么比单线程还慢?GIL锁的影响实测 Python 全局解释器锁(GIL)是导致多线程在 CPU 密集型任务中性能不如单线程的核心原因。在多核 CPU 时代,这个机制限制了 Python 程序只能利用单个核心,使得多线程不仅无法并行计算,反而因为线程切换的开销导致性能下降。 理解
Python
多线程
GIL锁
89
0
Python __slots__属性对类内存占用与属性访问的影响
2026-04-19 23:17:46
Python 默认的类实例机制通过字典 dict 存储属性,虽然灵活,但会消耗大量内存。在需要创建成千上万个实例的场景下(如游戏角色、传感器数据点),这种内存开销会变得难以承受。使用 slots 属性可以显著降低内存占用并提升属性访问速度。 以下是指南正文: 1. 理解默认机制的内存开销 Pytho
Python
内存优化
slots
90
0
Python sys.getsizeof测量对象内存占用的准确性分析
2026-04-19 15:17:30
Python sys.getsizeof测量对象内存占用的准确性分析 直接使用 sys.getsizeof 测量容器对象(如列表、字典)时,往往会得到一个远小于预期的数值。这是因为该函数默认只计算容器本身的内存开销,而不包含其引用对象的内存。以下将详细解析这一现象,并提供两种准确的测量方案。 1.
Python
内存管理
内存占用
83
0
Python 包管理:pip 命令与 requirements.txt
2026-04-18 21:27:16
Python 包管理:pip 命令与 requirements.txt 打开终端或命令行工具,输入以下命令检查 pip 是否已安装。 bash pip version 如果显示版本号(如 pip 21.0.1 from ...),说明已就绪;如果提示“未找到命令”,需先安装 Python 环境,安装
Python
包管理
pip
74
0
Python 缓存装饰器:functools.lru_cache 的应用
2026-04-18 12:17:17
Python 缓存装饰器:functools.lrucache 的应用 在 Python 开发中,重复计算是导致程序运行缓慢的常见原因之一。如果函数的输入参数相同,且返回结果固定,重复执行该函数会浪费宝贵的 CPU 时间。functools.lrucache 装饰器是 Python 标准库中解决此问
Python
缓存
装饰器
92
0
Python 生成器表达式:内存高效的迭代器
2026-04-18 03:21:41
当需要在代码中处理数百万条数据时,直接创建一个巨大的列表往往会耗尽计算机内存。Python 生成器表达式提供了一种不占用大量内存即可遍历数据的方法。它就像是一个按需生产数据的“工厂”,而不是一次性造出所有东西的“仓库”。 1. 理解核心语法差异 生成器表达式的写法与列表推导式几乎完全一致,唯一的区别
Python
生成器
生成器表达式
80
0
Python 常用库:NumPy 数组基本操作
2026-04-17 12:13:10
Python 常用库:NumPy 数组基本操作 NumPy(Numerical Python)是 Python 科学计算的基础库,它提供了高性能的多维数组对象以及相关工具。掌握 NumPy 数组的基本操作是进行数据分析和机器学习的前提。 一、环境准备 在使用 NumPy 之前,需要先安装并导入该库。
NumPy
Python
数组操作
94
0
Python 线程池:concurrent.futures.ThreadPoolExecutor
2026-04-17 04:27:54
Python 线程池:concurrent.futures.ThreadPoolExecutor 在处理 I/O 密集型任务(如网络请求、文件读写)时,为了提高程序运行效率,我们需要使用多线程。Python 标准库中的 concurrent.futures 模块提供了一个高级接口 ThreadPoo
Python
多线程
线程池
114
0
Python 文件操作:with open() 上下文管理器
2026-04-16 08:15:48
Python 文件操作:with open 上下文管理器 处理文件是编程中最常见的任务之一,但在 Python 中直接使用 open 和 close 往往埋藏着隐患。如果程序在读取文件的过程中发生崩溃,或者因为逻辑错误提前退出,文件句柄可能无法正确关闭,导致数据丢失或文件被占用。 使用 with o
Python
文件操作
上下文管理器
111
0
Python 虚拟环境:venv 与 pipenv 对比
2026-04-14 13:20:50
Python 虚拟环境:venv 与 pipenv 对比 安装 Python 虚拟环境是每个 Python 开发者的必备技能。虚拟环境能将项目依赖隔离,避免版本冲突,使项目保持整洁和可复现性。本文对比 Python 内置的 venv 和第三方工具 pipenv,帮助你选择最适合的工具。 venv:P
Python
虚拟环境
venv
81
0
Python 依赖问题:ModuleNotFoundError 模块找不到的解决
2026-04-14 03:26:50
Python 依赖问题:ModuleNotFoundError 模块找不到的解决 当 Python 代码抛出 ModuleNotFoundError: No module named 'xxx' 时,意味着解释器无法在当前环境中找到指定的模块。这通常是由于未安装库、环境路径错误或命名冲突导致的。以下
Python
依赖管理
ModuleNotFoundError
344
0
Python 高级特性:装饰器的原理与自定义实现
2026-04-13 22:27:23
装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能。装饰器的返回值也是一个函数对象。利用 Python 函数作为一等对象的特性,我们可以将函数作为参数传递给另一个函数,并在该函数内部对其进行增强处理。 第一阶段:理解函数作为对象的基础 在编写装饰器之前
Python
装饰器
闭包
123
0
上一页
1
2
3
4
5
6
7
下一页