python教程技术文章
-
用一个长度前缀二进制报文示例,说明 Python memoryview 如何复用底层缓冲区、配合 struct.unpack_from 解析头部,并处理复制边界、可写性和生命周期。225 收藏 -
文章 · python教程 | 5天前 | 并发控制 · Python教程 · asyncio · 虚假唤醒 wait_for Python asyncio asyncio.Condition 异步同步
asyncio.Condition.wait() 返回后共享状态可能仍不满足要求。本文从多消费者空队列故障出发,说明 wait_for(predicate) 如何在锁内重复检查条件,并给出通知、超时、取消和代码审查的完整写法。478 收藏 -
讲清 Python ExceptionGroup 的 derive、split 与 subgroup 如何协作,帮助自定义异常组保留请求标识、消息、notes 和异常链上下文。417 收藏 -
文章 · python教程 | 5天前 | 异常处理 · 并发编程 · Python教程 · asyncio · asyncio 结构化并发 ExceptionGroup except* Python TaskGroup
TaskGroup 会在兄弟任务取消并完成收尾后,把非取消异常组合成 ExceptionGroup。本文演示 except* 分类处理、取消边界与 gather 的选择差异。208 收藏 -
文章 · python教程 | 5天前 | 并发编程 · 工程实践 · Python教程 · 多进程日志 QueueListener multiprocessing.Queue RotatingFileHandler Python QueueHandler
Python 多进程不能依赖多个 FileHandler 安全写入同一文件。本文用 multiprocessing.Queue、QueueHandler 和 QueueListener 建立单写入者结构,给出可复用完整示例,并说明轮转、队列容量、LogRecord 序列化、multiprocessing 内部日志与安全关闭顺序。186 收藏 -
Pydantic 部分更新不能用 None 判断字段是否缺失。本文用 model_fields_set 与 model_dump(exclude_unset=True) 保留显式 null、排除未提供字段,并梳理 Pydantic v2 的 model_dump、model_copy 与回归测试。399 收藏 -
pytest Fixture 的 scope 决定资源被缓存和复用多久。本文从测试隔离、初始化成本和共享状态风险出发,对比五种作用域,并给出 session 基础设施配合 function 事务的实用方案。341 收藏 -
从一次文件下载路径穿越排查出发,给出 pathlib 的安全拼接模板:拒绝绝对路径,解析根目录与候选路径,再用 relative_to 验证目录归属,并说明符号链接、strict 参数和竞态边界。463 收藏 -
multiprocessing 处理大对象变慢,瓶颈常在 pickle 序列化、管道传输、反序列化和内存复制,而非计算本身。本文给出量化方法,并用小任务描述符、批量分块和 SharedMemory 改写数据通道。478 收藏 -
Python import 很慢时,应先用 -X importtime 区分模块自身耗时与包含子依赖的累计耗时,再排查模块顶层的文件 I/O、网络连接、插件扫描和重对象构造。本文给出轻量 __init__、函数内 import、按需初始化及复测方法,并说明延迟导入只是转移成本。292 收藏 -
用 Python contextvars 在 asyncio 请求链中传递 request_id,说明 Task 上下文继承、copy_context、Token.reset 以及 to_thread 的边界。393 收藏 -
从大文件生成器管道的三个常见故障入手,讲清同步按需拉取的背压边界、提前停止时的关闭级联,以及保留行号和原始原因的异常传播写法。126 收藏 -
Python 3.10 起可用 @dataclass(slots=True) 自动生成 __slots__,避免每个字段固定的小对象创建实例 __dict__。本文通过完整小项目对比批量实例内存,并说明序列化、继承、动态属性和弱引用的兼容边界。427 收藏 -
Python 3.12+ 可用类型参数语法改写通用类、函数和类型别名。本文用 Box[T]、first[T] 与 Pair[T] 说明迁移步骤,并列出 Python 3.11 兼容边界。132 收藏 -
文章 · python教程 | 6天前 | 并发 · 异常处理 · python · asyncio · CancelledError 结构化并发 ExceptionGroup Python asyncio TaskGroup asyncio gather
asyncio.TaskGroup 能在首个非取消异常出现时取消同组剩余任务,并在退出前等待全部任务收尾。本文给出最小写法、异常组处理和旧版本兼容方案。246 收藏