python教程技术文章
-
通过双 Handler 示例说明 logging Filter 如何补充记录字段,利用 Python 3.12 起支持的 LogRecord 替换实现输出端隔离,并解释格式器缺字段、extra 冲突与浅复制边界。426 收藏 -
Python asyncio.Queue 的 join 等待未完成计数归零,需要消费者逐条调用 task_done。通过 TaskGroup 与退出哨兵示例,区分队列清空、消费者退出和业务成功,并说明 Python 3.13+ shutdown 的迁移注意事项。426 收藏 -
Python Polars 查看 LazyFrame 查询计划,核心是用 explain 对比未优化和优化后的逻辑计划,再用 show_graph 绘制逻辑或物理计划图。本文用一个小项目说明如何读懂过滤下推、列裁剪与执行边界。421 收藏 -
Python logging 记录异常时,logger.exception 会以 ERROR 级别保留当前 traceback;本文进一步区分 exc_info 与 stack_info,并说明如何用 extra 补充请求上下文。421 收藏 -
本文从结果稳定性、函数副作用、重复调用和无上限内存占用四个条件,判断 Python functools.cache 是否适合无参函数,并用 cache_info 与 cache_clear 说明观察和清理方式。419 收藏 -
讲清 Python ExceptionGroup 的 derive、split 与 subgroup 如何协作,帮助自定义异常组保留请求标识、消息、notes 和异常链上下文。417 收藏 -
Python fractions.Fraction 可以保留数值的有理表示,limit_denominator 则能把结果约束到指定最大分母。本文解释浮点数转换差异、参数选择方法和常见边界。417 收藏 -
Python 3.12 起可以用 type 语句或 typing.TypeAliasType 显式声明可复用类型别名。本文从简单别名、泛型参数和运行时元数据出发,说明 TypeAliasType 与普通赋值、TypeAlias、NewType 的区别及版本边界。417 收藏 -
讲清 Python functools.singledispatch 如何依据第一个参数类型选择函数,覆盖默认 object 实现、register 注册、dispatch 查询、registry 注册表,以及 Mapping 和 bool 的类型边界。417 收藏 -
比较 Python Path.replace 与 rename 的覆盖语义,解释相对路径、跨文件系统、Windows 文件占用及异常处理,并给出不先删目标的替换示例和迁移清单。415 收藏 -
文章 · python教程 | 3星期前 | 日志 · logging · Python教程 · Python contextvars request_id LogRecord logging.Filter
用 Python contextvars 保存 request_id 和用户标识,再由 logging.Filter 将上下文字段注入 LogRecord,统一交给 Formatter 输出;文章同时说明 Handler 挂载位置、缺省值和 finally reset 的并发边界。410 收藏 -
@runtime_checkable 让 Protocol 可用于 isinstance,但运行时只检查成员是否存在,不验证参数、返回值或属性类型。本文拆解静态类型域与运行时结构域,并给出 callable、签名、适配器和业务契约的分层补强方法。410 收藏 -
文章 · python教程 | 2星期前 | 标准库 · python · 数据处理 · 问题排查 · collections.Counter 库存扣减 Python Counter.subtract 缺失项目 负计数
Counter.subtract 会保留零值和负值,真正判断缺失项目不能只看扣减结果。本文用库存与需求示例区分原始不存在、数量不足和恰好用完,并给出可复用的诊断函数。410 收藏 -
文章 · python教程 | 1星期前 | 异步编程 · Python教程 · asyncio · Python 清理 asyncio CancelledError TaskGroup Task.cancel
Python asyncio 任务取消时,CancelledError 会在下一个可挂起点进入协程。本文用 try/finally 组织资源清理,说明 gather、TaskGroup、timeout 的收尾边界,以及为什么通常要重新抛出取消异常。410 收藏 -
文章 · python教程 | 2星期前 | 异常处理 · 异步编程 · Python教程 · asyncio · 后台任务 任务取消 CancelledError Python asyncio asyncio.shield
asyncio.shield 能阻断外层取消向内部 Task 传播,但调用方仍会收到 CancelledError。本文用强引用、完成回调和有限等待窗口整理可控的后台收尾写法,并说明 shield 的失效边界。407 收藏