python教程技术文章
-
Python logging.Filter 不只是放行或丢弃日志;当过滤器修改 LogRecord 时,handler 之间可能互相污染上下文。本文用可运行示例拆开过滤边界、复制记录和验证方法。212 收藏 -
文章 · python教程 | 1个月前 | python · utf-8 · pathlib · encoding 跨平台 UTF-8 locale Python pathlib.Path.read_text
Path.read_text() 省略 encoding 时会沿用文本打开的默认编码,读取 UTF-8 中文文件可能在不同环境表现不同。本文用 pathlib.Path、encoding="utf-8"、errors="strict" 和 PYTHONWARNDEFAULTENCODING 验证边界。212 收藏 -
json.loads 的整数限制和 JSON 文档大小限制不是一回事。本文用 parse_int 建立单个整数位数边界,再配合入口字节数检查,避免超大整数输入拖垮解析。212 收藏 -
Python functools.cache适合无界记忆化,lru_cache适合设置容量和淘汰策略。本文从参数可哈希、typed、cache_info与失效边界出发,给出可直接套用的选择清单。211 收藏 -
asyncio.gather 遇到子任务异常时,默认只把第一个异常交给调用方,其他任务可能仍在运行。本文用可复现实验说明 return_exceptions、Task.cancel 和 finally 清理之间的边界。210 收藏 -
Pydantic 的多个字段联合约束,应按规则范围选择 model_validator 或 field_validator:模型级规则比较完整实例,字段级规则只读取已完成验证的数据。本文用密码确认和区间边界示例说明验证层、顺序和错误处理。210 收藏 -
文章 · python教程 | 5天前 | 异常处理 · 并发编程 · Python教程 · asyncio · asyncio 结构化并发 ExceptionGroup except* Python TaskGroup
TaskGroup 会在兄弟任务取消并完成收尾后,把非取消异常组合成 ExceptionGroup。本文演示 except* 分类处理、取消边界与 gather 的选择差异。208 收藏 -
Python Typer 的 bool 参数可以自动生成正反开关,也能用 --accept/--reject 自定义业务语义;需要区分未选择与明确关闭时,应使用 bool | None。208 收藏 -
Python 3.14 为 asyncio 增加 ps 和 pstree 命令,可以直接查看运行进程里的任务名、协程栈和等待链。本文用一个可复现的卡住任务场景说明如何选择 PID、读取输出、定位等待点,并给出版本与权限边界。207 收藏 -
Python pathlib 的 Path.glob 和 Path.rglob 不会自动排除点号开头的隐藏目录。本文说明如何包含或排除隐藏路径,并比较结果过滤与 Path.walk 裁剪目录树的写法。207 收藏 -
用 Python dataclass 同时开启 slots 和 weakref_slot,创建节省实例字典且支持弱引用的数据类,并梳理版本、继承、字段反射和动态属性限制。207 收藏 -
Python PickleBuffer 配合 pickle 协议 5,可把大数组数据作为带外缓冲区单独传递,让主 pickle 流只保存对象结构与引用标记。本文给出 NumPy 与自定义容器写法,并说明连续性、顺序、生命周期和安全边界。207 收藏 -
Python 的 sqlite3.Connection.blobopen 可对已有 SQLite BLOB 做分块读写。本文演示 zeroblob 预分配、流式写入和导出,并说明固定长度、rowid 权限、事务与资源边界。205 收藏 -
Python 日志文件已经完成轮转,旧文件却继续变大,通常不是轮转器失效,而是进程仍持有旧文件句柄或多个 handler 重复写入。本文用 WatchedFileHandler、RotatingFileHandler 和多进程场景拆开排查,并给出可复现的验收步骤。204 收藏 -
讲清 Python contextvars 如何让每个 asyncio Task 持有独立上下文,并给出请求标识传递、Token 恢复和常见边界处理方法。202 收藏