python教程技术文章
-
解释 asyncio eager_task_factory 为什么会让协程在 Task 构造时同步起跑,说明缓存命中、首个阻塞 await、异常与全局任务工厂带来的顺序变化。497 收藏 -
Python sqlite3 的 autocommit 要先选清自动提交、显式事务或旧式 isolation_level。本文用连接参数、in_transaction 和重连验证排查提交回滚问题,并给出 Python 3.11 及更早版本的兼容写法。488 收藏 -
Python 3.13 新增 typing.get_protocol_members,可返回 Protocol 定义及继承得到的成员名称 frozenset。本文通过一次成员探测故障复盘,说明正确读取、稳定排序、泛型别名边界、TypeError 处理和旧版本兼容写法。487 收藏 -
用 Python configparser 的 ExtendedInterpolation 拆分基础值、环境覆盖和派生配置,讲清跨节引用、加载优先级、延迟插值、缺失键诊断与循环依赖处理。480 收藏 -
multiprocessing 处理大对象变慢,瓶颈常在 pickle 序列化、管道传输、反序列化和内存复制,而非计算本身。本文给出量化方法,并用小任务描述符、批量分块和 SharedMemory 改写数据通道。478 收藏 -
文章 · python教程 | 3天前 | 并发控制 · Python教程 · asyncio · 虚假唤醒 wait_for Python asyncio asyncio.Condition 异步同步
asyncio.Condition.wait() 返回后共享状态可能仍不满足要求。本文从多消费者空队列故障出发,说明 wait_for(predicate) 如何在锁内重复检查条件,并给出通知、超时、取消和代码审查的完整写法。478 收藏 -
讲清 Python asyncio.timeout_at 如何用 loop.time() 计算绝对截止时间,正确处理 TimeoutError,并用 expired() 判断超时边界。470 收藏 -
用 Python re 的命名分组和 groupdict 解析可选日志字段,区分整行失败、字段缺失与空字符串,并在字典边界统一设置默认值。470 收藏 -
从一次文件下载路径穿越排查出发,给出 pathlib 的安全拼接模板:拒绝绝对路径,解析根目录与候选路径,再用 relative_to 验证目录归属,并说明符号链接、strict 参数和竞态边界。463 收藏 -
用 Python 处理查询参数时,quote_plus 会把空格编码为加号、把字面加号编码为 %2B;本文对比 quote、urlencode 和手写查询串的适用边界。453 收藏 -
Python subprocess 文本输出出现 bytes、中文乱码或空结果时,重点检查 text、encoding、errors、stdout、stderr 和 returncode 的边界,并给出可直接改造的排查示例。444 收藏 -
Python free-threading 不是把解释器换成一个开关就结束了:原生扩展还要匹配 free-threaded wheel,声明不使用 GIL,并补足此前被 GIL 掩盖的线程安全测试。本文按解释器、轮子、模块声明和 CI 四层整理一份可执行兼容清单。439 收藏 -
解释 Python 3.14 Path.info 的文件类型缓存何时可能变旧、iterdir() 如何提供初始信息,以及实时判断和重建 Path 对象的选择。438 收藏 -
本文说明 Python zip(strict=True) 会在最短输入耗尽后的下一次取值请求中抛出 ValueError,并分析参数顺序、额外消费与提前停止迭代的边界。437 收藏 -
TypeGuard 可以把复杂容器在 True 分支收窄到更具体的类型,但不会替你转换运行时数据。本文用混合列表说明谓词写法、False 分支、list 不变性、Sequence 设计和 TypeIs 的取舍。437 收藏