-
Python logging 可以按 logger 名称层级为不同模块设置独立级别。本文用 web、worker 和 data 三个模块说明 logger、handler、propagate 的取舍,解决日志过多、缺失和重复打印问题。
-
Python 的 csv.reader.line_num 统计的是已经读过的物理行数,不等于返回的记录数。本文结合带引号换行的 CSV 场景,说明 newline=""、记录序号、csv.Error 和业务字段校验如何配合定位坏记录。
-
Python zoneinfo 处理夏令时不能只给 datetime 附加时区。本文用 ZoneInfo、fold 和 UTC 往返判断普通、缺失、重复三类本地时间,并说明跨平台部署时如何准备 IANA 时区数据以及保存 UTC、zone key 和 fold。
-
Python hashlib 可通过分块 read 与同一个摘要对象的 update 流式计算大文件 SHA-256;结合 file_digest 的版本边界,说明二进制读取、句柄关闭、错误处理及文件稳定性。
-
Python 的 dataclass 配合 frozen=True 可以把配置对象变成创建后不可直接改字段的实例。本文从定义、初始化校验、浅层冻结和 replace 复制几个边界出发,给出一套适合应用启动配置的写法。
-
Python argparse.BooleanOptionalAction 可以从一个布尔参数声明自动生成 --feature 与 --no-feature 两个开关。本文结合命令行配置的实际取舍,说明默认值、显式传参、帮助信息和旧版本兼容边界。
-
Python sqlite3 的 set_authorizer 可以在 SQL 编译阶段按操作码决定放行、拒绝或隐藏列读取。本文用一个只读连接示例说明回调参数、三种返回值、连接范围与不能替代的资源限制。
-
Python sqlite3 的动态查询不要把用户输入直接拼进 SQL。本文从 qmark、named 两种占位符讲起,说明动态 IN 条件如何按参数数量生成占位符,以及表名、列名和排序方向为什么需要白名单。
-
Decimal 直接接收 float 时会精确保留二进制浮点值,因此 Decimal(0.1) 可能出现长小数。本文说明怎样用字符串或整数构造,并用 FloatOperation 和 quantize 管住输入与输出边界。
-
用 Python tempfile.NamedTemporaryFile 创建带可见路径的临时文件,说明 delete、delete_on_close、with 清理和 Windows 重新打开的边界。
-
asyncio.Event 是可复用的状态标志,不是一次性消息队列。本文说明 set、wait、clear 的广播关系,并对比 Queue 与 Condition,帮助你避免清除时机不当造成的等待遗漏。
-
TaskGroup 首个非取消异常会取消尚未完成的同组任务,并在退出时组合已产生的异常。本文用 except* 分类 ExceptionGroup,并演示如何把普通业务异常转成结果对象,从而汇总每个异步任务的失败状态。
-
Java Map.computeIfAbsent 的映射函数返回 null 时不会记录键值映射。本文按触发条件、返回结果、异常边界和缓存策略拆开说明,帮助你区分未命中、空值与计算失败。
-
使用 Jackson JsonNode 处理 JSON 更新请求时,字段缺失与显式 null 不是同一种状态。本文用 has、get、path、isNull 和 isMissingNode 给出清晰的判断方式,并说明 PATCH 更新时如何选择策略。
-
BigDecimal 无参 divide 遇到 1/3 等非终止小数会抛出 ArithmeticException。本文按金额、比例和精确校验三类场景,说明 scale、RoundingMode 与 MathContext 的选择边界。