python教程技术文章
-
Python logging 的 Formatter 不只是拼接字符串,还决定 LogRecord 如何变成稳定的结构化日志。本文用 extra、defaults 和自定义 Formatter 统一业务字段、异常信息与 JSON 输出。185 收藏 -
Python 3.15 把 frozendict 加入内置类型。本文从默认配置、运行时覆盖和缓存键三个场景出发,说明如何构造与合并不可变映射,并梳理浅不可变、哈希条件和 dict 类型判断的边界。192 收藏 -
Python 3.15 新增的 sentinel 类型适合表示“参数未提供”这一状态。本文从 None、object() 和类型注解的差异出发,给出默认值设计、身份判断、复制序列化和旧版本兼容的实用写法。381 收藏 -
Python free-threading 不是把解释器换成一个开关就结束了:原生扩展还要匹配 free-threaded wheel,声明不使用 GIL,并补足此前被 GIL 掩盖的线程安全测试。本文按解释器、轮子、模块声明和 CI 四层整理一份可执行兼容清单。439 收藏 -
multiprocessing 进程池把任务送入子进程时,函数、参数和返回值都要跨进程传递。本文结合 Python 3.14 起的启动方式变化,解释不可序列化对象为什么暴露、哪些写法容易只在 fork 下工作,以及如何用模块顶层函数、数据描述和 initializer 重构稳定边界。255 收藏 -
Python sqlite3 的 autocommit、isolation_level 和 Connection 上下文管理器并不是同一层机制。本文从数据持久化风险出发,说明三种事务模式的边界、异常回滚方式和可直接采用的连接写法。197 收藏 -
当函数既能自己创建资源,也能复用调用方传入的资源时,nullcontext 可以作为无操作上下文管理器,让同步 with 和异步 async with 各自保持单一入口。本文结合文件与 HTTP 会话示例,说明 enter_result、Python 版本、资源所有权和常见报错。316 收藏 -
文章 · python教程 | 1天前 | 面向对象 · 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教程 | 1天前 | 异常处理 · 异步编程 · 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 收藏