python教程技术文章
-
用一个可运行的 asyncio 示例说明 TaskGroup 的异常传播、兄弟任务取消和部分结果保留方式,帮助 Python 服务避免并发任务失败后状态失控。446 收藏 -
金额计算最怕精度和舍入规则藏在全局状态里。本文用 Python decimal.Context 固定局部精度,拆开量化、异常陷阱和线程上下文的边界,并给出可回归的验收样例。168 收藏 -
asyncio.timeout_at 用事件循环时钟表达绝对截止时间,适合把多个异步步骤放进同一时间预算。本文从最小写法出发,说明 TimeoutError 的捕获位置、取消语义、嵌套超时和 wait_for 的边界。230 收藏 -
QueueHandler 本身不会自动把日志变成安全的异步链路:如果它把记录送回监听同一队列的日志路径,就会出现递归、重复输出或队列持续增长。本文用最小示例拆开 QueueHandler、QueueListener 与 logger 层级的边界,给出可验证的安全配置。306 收藏 -
文章 · python教程 | 3星期前 | 并发 · 消息队列 · 异步编程 · Python教程 · Python 消费者 超时 Queue asyncio 哨兵 asyncio.Queue task_done
asyncio.Queue 的任务处理结束,不等于消费者协程会自动结束。本文用固定数量哨兵、task_done()、gather() 和 wait_for() 组成可验证的优雅停机流程,说明有界队列、异常回收与超时检查的边界。151 收藏 -
dataclasses.InitVar 是只参与初始化、不保存为实例字段的伪字段。本文用配置参数注入和输入校验示例,说明它如何进入 __post_init__、为何不出现在 fields() 与 asdict() 中,以及序列化时应如何设计。147 收藏 -
文章 · python教程 | 3星期前 | 日志 · 调试 · 异常处理 · python · 错误报告 异常链 Python traceback.TracebackException capture_locals
TracebackException 适合把异常捕获和展示解耦:保留异常链、按需捕获局部变量,再把结果限制在日志字段需要的范围。本文用紧凑示例说明 from_exception、format、chain、capture_locals 和敏感数据边界。179 收藏 -
Python 的无界缓存命中率可能很好,却把不断变化的参数组合留在进程里。本文用可复现实验比较 functools.cache 与 lru_cache(maxsize=None),并给出内存上限、清理和压测验收方法。391 收藏 -
文章 · python教程 | 3星期前 | 日志 · python · 运维 · logging · 多进程日志 日志滚动 Python logging.handlers RotatingFileHandler 备份数量
Python 的 RotatingFileHandler 可以按文件大小切换日志文件,但 backupCount、encoding、delay 和多进程写入边界很容易被误配。本文从一个日志文件不断覆盖的现场出发,逐项验证滚动规则、备份数量和进程隔离问题。458 收藏 -
用 pathlib.Path.read_text() 读取配置文件很方便,但默认编码、换行统一和文件不存在等边界不能靠猜。本文从一个小型配置读取函数出发,说明编码如何显式声明、换行如何验收,以及何时应该改用二进制读取。345 收藏 -
文章 · python教程 | 3星期前 | 日志 · 并发编程 · Python教程 · 运维排查 · Python 日志轮转 并发写入 logging.handlers.RotatingFileHandler maxBytes backupCount
Python 的 RotatingFileHandler 在多进程写日志时可能出现重复切分、备份文件互相覆盖或大小超限。本文从 maxBytes 与 backupCount 的触发语义出发,给出单进程验证、并发边界、收敛方案和上线检查清单。327 收藏 -
文章 · python教程 | 3星期前 | SQLite · 数据恢复 · Python教程 · Python SQLite 数据库备份 sqlite3 Connection.serialize Connection.deserialize
用 Python sqlite3.Connection.serialize 导出内存或文件数据库快照,再用 deserialize 恢复到内存连接,讲清提交时机、备份窗口、内存占用和恢复校验。501 收藏 -
文章 · python教程 | 3星期前 | 日志 · 标准库 · python · Python logging BufferingFormatter BufferingHandler MemoryHandler
用 Python logging.BufferingHandler 和 BufferingFormatter 把多条日志组成可读批次,讲清 shouldFlush、flush、header/footer 与关闭时的边界。481 收藏 -
Python dataclasses 使用 list、dict 等可变默认值时,必须用 field(default_factory=...) 为每个实例创建独立对象。本文用配置示例验证共享问题、嵌套工厂和迁移检查点。479 收藏 -
文章 · python教程 | 3星期前 | 命令行 · Python教程 · 兼容性 · 命令行工具 argparse ArgumentParser Python 3.14 prog __main__
Python 3.14 调整 argparse.ArgumentParser 的默认程序名,让脚本、-m 模块和包入口显示更贴近真实启动方式。本文用三个启动场景核对帮助文本变化,并给出迁移时显式设置 prog 的兼容策略。436 收藏