python教程技术文章
-
对比 Python typing.TypeGuard 与 TypeIs 在 True、False 分支中的类型收窄差异,解释 list 不变性边界,并给出静态检查验证方法。295 收藏 -
Python dataclass 继承后,kw_only 字段必须用关键字传入,但父类字段和子类字段的参数位置可能不同。本文用一个最小示例说明正确调用、签名检查和常见误区。152 收藏 -
Python logging 出现重复日志,通常是子 logger 自带 handler 后又因 propagate=True 把同一记录交给 root handler。本文用检查代码和配置边界说明如何定位与修复。306 收藏 -
本文区分 DictWriter 中缺少列与多余键的处理方式,演示 extrasaction='raise' 和 'ignore',并说明 restval 如何补齐真正缺少的字段。274 收藏 -
Path.resolve 遇到不存在路径时,默认 strict=False 会尽可能解析并保留剩余路径;必须确认文件存在时使用 strict=True 或 exists(),并区分 FileNotFoundError 与其他 OSError。278 收藏 -
讲清 Python asyncio.timeout_at 如何用 loop.time() 计算绝对截止时间,正确处理 TimeoutError,并用 expired() 判断超时边界。470 收藏 -
文章 · python教程 | 5天前 | 异常处理 · Python教程 · 兼容性 · ExceptionGroup Python contextlib.suppress BaseExceptionGroup except*
讲清 Python 3.12 contextlib.suppress 对 ExceptionGroup 的部分抑制语义,并给出 Python 3.11 except* 的兼容处理与测试边界。431 收藏 -
文章 · python教程 | 5天前 | 资源管理 · python · Python memoryview memoryview.release Python 缓冲区协议 bytearray BufferError mmap 资源释放
Python memoryview 不会复制底层数据,但会持有缓冲区导出,导致 bytearray 无法调整大小或映射资源无法关闭。本文用 release、with 和派生视图示例说明正确的释放边界,并区分视图释放与底层文件资源关闭。275 收藏 -
介绍 Python array 类型码不匹配时的按元素转换方法,并说明浮点精度、溢出、非有限值和原始字节解释的边界。311 收藏 -
Python mmap 修改文件后,先确认使用 ACCESS_WRITE 共享映射,再调用 mmap.flush;如果要求更强的崩溃持久性,再对同一个文件描述符调用 os.fsync。本文说明 ACCESS_COPY、缓冲文件、局部刷盘和关闭顺序的边界。415 收藏 -
Python socket 已设置 SO_REUSEADDR 仍绑定失败时,先区分 TIME_WAIT、活动监听、IPv4/IPv6 地址范围和 SO_REUSEPORT,再按正确顺序排查。154 收藏 -
使用 ThreadingHTTPServer 时,多个请求线程可能同时读改写共享字典,导致计数丢失或响应状态不一致。本文用基线指标、最小锁边界和快照模式给出可复现的处理方案。344 收藏 -
用 Python 处理查询参数时,quote_plus 会把空格编码为加号、把字面加号编码为 %2B;本文对比 quote、urlencode 和手写查询串的适用边界。453 收藏 -
json.loads 的整数限制和 JSON 文档大小限制不是一回事。本文用 parse_int 建立单个整数位数边界,再配合入口字节数检查,避免超大整数输入拖垮解析。212 收藏 -
Python zoneinfo 遇到夏令时回拨造成的重复小时,需要用 fold=0 和 fold=1 区分较早、较晚的瞬时点;从 UTC 转换时可让 zoneinfo 自动判断,并在接口或数据库中按需保存 UTC、IANA 时区名和 fold。102 收藏