python教程技术文章
-
文章 · python教程 | 3星期前 | 日志 · 标准库 · python · Python logging BufferingFormatter BufferingHandler MemoryHandler
用 Python logging.BufferingHandler 和 BufferingFormatter 把多条日志组成可读批次,讲清 shouldFlush、flush、header/footer 与关闭时的边界。481 收藏 -
Python Decimal 与 float 不能直接做算术运算时,先定位混用边界,再从字符串统一转换为 Decimal,并用 quantize 固定金额小数位。480 收藏 -
Python sqlite3 默认返回 tuple。本文用 sqlite3.Row 和自定义 dict_factory 演示如何按命名字段读取查询结果,并说明连接级配置、列别名和已有游标的边界。480 收藏 -
Python dataclasses 使用 list、dict 等可变默认值时,必须用 field(default_factory=...) 为每个实例创建独立对象。本文用配置示例验证共享问题、嵌套工厂和迁移检查点。479 收藏 -
TaskGroup 中一个任务失败后,其他任务会被取消并等待收尾;本文用代码说明 CancelledError、ExceptionGroup 与 asyncio.timeout 的边界。475 收藏 -
文章 · python教程 | 2星期前 | 日志 · python · 多进程 · Python QueueListener multiprocessing.Queue logging.QueueHandler
用 QueueHandler 把多进程日志交给 QueueListener 统一写出,重点处理 Queue 的关闭顺序、join_thread 阻塞和日志丢失排查。474 收藏 -
Python logging 的 QueueHandler 能把业务线程和日志写入解耦,但队列满、监听线程退出顺序不对时会出现丢日志。本文拆开背压处理、队列容量和优雅退出的边界,给出可复现的验收代码。473 收藏 -
Python 3.14 会在 return、break 或 continue 让控制流离开 finally 时发出 SyntaxWarning。本文复现异常被吞掉的旧写法,解释清理代码与返回值的边界,并给出兼容迁移和 CI 检查清单。471 收藏 -
Python 日志重复输出通常来自子 logger 与 root logger 同时处理同一条 LogRecord。本文用 logger 拓扑、handler 归属和 LoggerAdapter 上下文三个维度,给出可执行的排查与配置选择方法。471 收藏 -
讲清 Python asyncio.timeout_at 如何用 loop.time() 计算绝对截止时间,正确处理 TimeoutError,并用 expired() 判断超时边界。470 收藏 -
文章 · python教程 | 3星期前 | 日志 · logging · Python教程 · 生产运维 · QueueHandler · Python 优雅停机 logging QueueHandler QueueListener 日志不丢
Python logging 使用 QueueHandler 和 QueueListener 后,停机阶段不能只调用 logging.shutdown() 就结束进程。本文用一个可运行的日志队列示例,拆解停止接收、等待队列排空、关闭监听器和异常兜底的顺序,给出生产环境可复查的验收方法。469 收藏 -
用 selectors.DefaultSelector 组织非阻塞 socket 的注册、读事件分发和连接关闭,重点看 EVENT_READ、select、unregister 与 close 的顺序边界。469 收藏 -
asyncio.wait_for 超时并不等于任务立即消失:默认会取消被等待对象并等待取消完成。本文用 finally、shield 和 Task 引用说明如何保留清理机会,并区分取消任务与继续运行任务。469 收藏 -
Path.iterdir() 遇到 PermissionError 时,不要把异常包在整棵扫描树外层;按目录捕获 OSError,记录跳过路径,再用 is_dir() 和 is_file() 区分结果,扫描就能继续且可追踪。468 收藏 -
Python 动态调用函数时,inspect.signature、Signature.bind 和 BoundArguments.apply_defaults 可以把参数匹配从运行时报错提前到调用前校验。本文用一个命令分发场景拆开位置参数、关键字参数、缺省值和可变参数的边界。467 收藏