python教程技术文章
-
Python sqlite3 的 autocommit、isolation_level 和 Connection 上下文管理器并不是同一层机制。本文从数据持久化风险出发,说明三种事务模式的边界、异常回滚方式和可直接采用的连接写法。197 收藏 -
当函数既能自己创建资源,也能复用调用方传入的资源时,nullcontext 可以作为无操作上下文管理器,让同步 with 和异步 async with 各自保持单一入口。本文结合文件与 HTTP 会话示例,说明 enter_result、Python 版本、资源所有权和常见报错。316 收藏 -
文章 · python教程 | 3天前 | 面向对象 · python · Python教程 · InitVar __post_init__ Python dataclass 派生字段 field(init=False)
Python dataclass 适合声明原始输入字段,再用 __post_init__ 在生成的 __init__ 完成后计算派生字段。本文从 field(init=False) 开始,说明 InitVar、继承、frozen、更新边界和 replace 的正确用法。303 收藏 -
TypeGuard 可以把复杂容器在 True 分支收窄到更具体的类型,但不会替你转换运行时数据。本文用混合列表说明谓词写法、False 分支、list 不变性、Sequence 设计和 TypeIs 的取舍。437 收藏 -
讲清 Python os.PathLike、__fspath__ 与 os.fspath 的职责,演示自定义路径对象如何兼容标准库和旧接口,并说明 str 强转、bytes 返回值与 TypeError 的边界。214 收藏 -
文章 · python教程 | 3天前 | 异常处理 · 异步编程 · Python教程 · asyncio · 后台任务 任务取消 CancelledError Python asyncio asyncio.shield
asyncio.shield 能阻断外层取消向内部 Task 传播,但调用方仍会收到 CancelledError。本文用强引用、完成回调和有限等待窗口整理可控的后台收尾写法,并说明 shield 的失效边界。407 收藏 -
用 Python configparser 的 ExtendedInterpolation 拆分基础值、环境覆盖和派生配置,讲清跨节引用、加载优先级、延迟插值、缺失键诊断与循环依赖处理。480 收藏 -
用 TOMLDecodeError 的 msg、pos、lineno 和 colno 定位解析失败位置,再结合表头与错误行推断具体键,并处理 Python 版本差异。198 收藏 -
使用 Python pathlib.Path.walk 遍历目录时,可在 top_down=True 模式下原地修改 dirnames,直接阻止指定子树继续下探。本文给出按名称和相对路径裁剪、错误处理、符号链接防环及验收方法。401 收藏 -
讲清 Python contextvars 如何让每个 asyncio Task 持有独立上下文,并给出请求标识传递、Token 恢复和常见边界处理方法。202 收藏 -
通过一个异步仓储接口的类型报错,讲清 Protocol 中 async def 的正确写法、Awaitable 双层嵌套、参数形状、泛型协议与运行时检查边界。363 收藏 -
dataclasses.replace 会调用数据类的 __init__ 重建对象,而 InitVar 不保存在实例字段中。本文讲清无默认值时如何显式传参、有默认值时的回退行为、init=False 字段重算,以及何时应改用真实字段或自定义复制方法。381 收藏 -
解释 importlib.resources.as_file 返回路径的生命周期:需要从 zip 等容器提取时,临时文件或目录会在退出上下文后清理;并给出块内使用、ExitStack 延长借用期和复制持久化三种写法。318 收藏 -
sqlite3.Connection.backup 的 progress 回调会直接给出 remaining 和 total。本文用可复用记录器计算剩余页数、完成比例与单轮增量,并解释 pages、status、并发写入和进度回退边界。264 收藏 -
Python mmap 不会把整个映射一次复制进堆,但超大文件仍可能受虚拟地址空间限制。本文给出跨平台分段映射配方:对齐 offset、限定逻辑窗口、拼接跨窗记录、限制超长行,并正确处理空文件、提前停止和资源释放。146 收藏