python教程技术文章
-
文章 · python教程 | 1个月前 | 资源管理 · python · 异步编程 · Python contextlib.aclosing 异步资源清理 aclose async generator
contextlib.aclosing 用异步上下文管理器把 aclose() 纳入 async with 的退出阶段,适合异步生成器和带异步清理方法的资源。本文从一个流式读取场景拆解退出顺序、异常传播和可回归的测试验收。408 收藏 -
Python 3.14 把 Zstandard 支持带进标准库。本文用同一份数据对比内存压缩、文件读写和解压核对,说明压缩级别、可选模块与旧版本兼容边界。406 收藏 -
讲清 Python asyncio.timeout 如何通过 Timeout.reschedule 动态缩短、延长或取消截止时间,并说明绝对时钟、TimeoutError 捕获位置及 expired 状态检查。403 收藏 -
用 multiprocessing.shared_memory 让多个 Python 进程直接访问同一块缓冲区,重点处理 create、attach、close、unlink 的生命周期,以及命名冲突和释放验收。399 收藏 -
Python sqlite3.Row 能让查询结果同时支持下标和列名访问,但它不会替你完成类型转换或空值判断。本文用同一个订单查询示例核对 row_factory、带类型的列值和 NULL 字段,说明如何在读取层保留清晰的边界。399 收藏 -
Python 3.14 为 heapq 增加了最大堆 API。本文说明如何用 _max 函数维护最大值优先队列、处理固定容量队列,并为旧版本封装兼容层。397 收藏 -
用 Python typing.TypeIs 编写类型谓词,理解真分支取交集、假分支排除目标类型的规则,并判断哪些列表场景仍应保留 TypeGuard。396 收藏 -
讲清 Python tarfile 解压前如何检查成员路径,拒绝绝对路径、..、盘符路径和链接,并用 filter=data 与临时目录降低越界写入风险。394 收藏 -
当函数参数来自字典或配置时,inspect.Signature.bind 可以在真正调用前完成参数绑定并把错误收敛为 TypeError。本文从一个小型回调分发器出发,演示 Signature.bind、BoundArguments 和 apply_defaults 的边界。393 收藏 -
读取几 GB 的 CSV 时,真正容易把内存推高的往往不是分块大小,而是类型推断、字符串列和失败行处理。本文用 pandas 分块读取与 Python 原生迭代两条路径,说明如何设定 dtype、逐块校验、隔离坏行并用峰值数据验收。392 收藏 -
该语法并非类型转换(typecast),而是 ctypes 模块特有的动态类型构造:c_double * n 会生成一个长度为 n 的 C 兼容数组类型,再通过解包调用实例化——本质是类型生成而非类型转换。 该语法并非类型转换(typecast),而是 ctypes 模块特有的动态类型构造:`c_d391 收藏 -
Python 的无界缓存命中率可能很好,却把不断变化的参数组合留在进程里。本文用可复现实验比较 functools.cache 与 lru_cache(maxsize=None),并给出内存上限、清理和压测验收方法。391 收藏 -
同一个 Python logger 同时输出控制台和审计日志时,handler 级 Filter 可以返回 LogRecord 副本,只给目标 handler 增加字段,避免污染其他输出。391 收藏 -
Python 3.12 引入 pathlib.Path.walk 后,可以用底层目录遍历写清理脚本,但大型目录不能只调用 rmtree。本文从 top_down、follow_symlinks、失败回调和 dry-run 记录出发,给出可复核的清理流程。388 收藏 -
Python functools.lru_cache 报 unhashable type list 时,根因是可变参数不能参与缓存键。本文解释哈希边界,并用 tuple、排序后的 tuple、frozenset 和包装函数完成稳定缓存。388 收藏