python教程技术文章
-
weakref.finalize 适合为文件句柄、临时目录等资源安排对象回收后的兜底动作,但回调参数、存活引用和解释器退出阶段都有明确边界。本文用可运行的小例子拆解注册、触发、detach 与 atexit 行为。200 收藏 -
金额计算不要直接依赖 float 的显示结果。本文用 Python decimal.Decimal 与 quantize 固定两位小数,拆开 ROUND_HALF_UP 的舍入选择、Inexact 校验和 InvalidOperation 异常边界,给出可复查的入账处理写法。196 收藏 -
用 importlib.resources.files 读取包内资源,并通过 Traversable 与 as_file 兼容目录、压缩包和真实文件路径场景。195 收藏 -
Python logging.Filter 可以在 LogRecord 交给处理器前补充请求上下文。本文用 trace_id 和 operator 两个字段演示过滤器挂载位置、Formatter 字段匹配、多处理器分流及缺失字段的安全处理。187 收藏 -
文章 · python教程 | 16小时前 | 跨平台 · python · pathlib · 文件系统 · Python pathlib 文件改名 Path.rename Path.replace
用 Python pathlib.Path.rename 完成文件改名时,同名目标在 Windows 与 Unix 上的行为并不一样。本文从预检查、临时名切换和失败回滚三个环节,给出可复现的安全改名脚本。182 收藏 -
用同一段 asyncio 示例验证 ContextVar、copy_context 与 Context.run 的边界,说明异步任务如何保持独立上下文,以及回调回到原上下文时该检查什么。178 收藏 -
文章 · python教程 | 1天前 | 数据库 · python · 备份 · SQLite · Python sqlite3 Connection.serialize Connection.deserialize 内存快照
用 Python sqlite3.Connection.serialize 把内存数据库导出为 bytes,再用 deserialize 恢复到新连接;文章说明提交时机、main 数据库、SQLite 能力和快照边界。167 收藏 -
Python heapq.merge 可以把多个已经排好序的日志流合并成一个惰性迭代器。本文用时间戳日志说明 key、reverse、内存占用和乱序输入的真实边界。167 收藏 -
用一个可运行的消息格式化例子拆解 functools.singledispatch:默认实现、register 注册、按第一个参数类型 dispatch,以及继承匹配和调试边界。161 收藏 -
用 collections.deque 的 maxlen、append 和 popleft 实现只保留最近事件的定长窗口,并核对窗口统计、空队列和并发边界。159 收藏 -
asyncio.Queue 适合在协程之间传递有界任务,但只创建队列并不能自动解决背压和停机。本文用真实的生产者、消费者和关闭信号示例,说明 maxsize、put、task_done、join 的配合边界,以及如何让队列在停止时不丢任务。152 收藏 -
itertools.batched 会惰性地把迭代器分成固定大小的元组,但默认允许最后一批不足 n。本文用订单编号批处理示例说明 strict=True 何时抛出 ValueError、如何选择补齐或拒绝,以及怎样验收没有静默漏数据。133 收藏 -
文章 · python教程 | 9小时前 | python · 异步编程 · 故障排查 · asyncio CancelledError TaskGroup Python 3.14 print_call_graph
Python 3.14 为 asyncio 增加调用图观察能力。本文用 TaskGroup 和取消状态的最小案例,说明如何从悬挂任务的等待链定位问题,并给出可复查的修复步骤。126 收藏 -
argparse 默认解析器遇到多个位置参数和选项交错时,参数归属容易让人误判。本文用 parse_intermixed_args 对比普通 parse_args,说明它的工作边界、子解析器限制和互斥组兼容性。114 收藏