python教程技术文章
-
解释 Python Fraction 接收 float 后出现长分数的原因,并对比字符串、Decimal、整数分子分母和 limit_denominator 的适用场景。411 收藏 -
Python decimal 的精度由 Context 控制。本文说明 Decimal 输入与运算精度的区别,并用 localcontext 和显式 Context 隔离局部计算,避免污染全局规则。346 收藏 -
Python re 的可选命名分组未参与匹配时默认返回 None,整体匹配失败则返回 None 的 Match。本文用 group、groupdict 和 fullmatch 讲清回溯后的读取方式,并区分缺失字段、空字符串与业务默认值。162 收藏 -
Python csv.DictReader 遇到数据行缺列时默认用 restval 补齐。本文从表头、分隔符、编码和 newline 入手排查,并说明 restval、restkey、fieldnames 与必填字段校验的边界。434 收藏 -
importlib.metadata 读取的是已安装 distribution 的版本元数据,不是源码目录里的模块版本。本文从 pyproject.toml 配置、解释器一致性、distribution 名称和 PackageNotFoundError 四个方面给出排查方法。287 收藏 -
Python subprocess 文本输出出现 bytes、中文乱码或空结果时,重点检查 text、encoding、errors、stdout、stderr 和 returncode 的边界,并给出可直接改造的排查示例。444 收藏 -
用一个可收尾的 Python 异步日志小项目讲清 QueueHandler、QueueListener、队列容量、prepare 与 stop 的配置和排查边界。303 收藏 -
Python sqlite3 的 autocommit 要先选清自动提交、显式事务或旧式 isolation_level。本文用连接参数、in_transaction 和重连验证排查提交回滚问题,并给出 Python 3.11 及更早版本的兼容写法。488 收藏 -
Python 的 cache 与 lru_cache 不是同一种容量策略:前者等价于无限缓存,后者可用 maxsize 限制容量。本文用配置示例和 cache_info 排查命中率、键参数与失效边界。377 收藏 -
讲清 Python enum.StrEnum 的显式值、auto()、.value、str()、JSON 序列化和旧版本兼容排查方法。298 收藏 -
用 dataclasses.replace 修改 Python dataclass 时,按字段声明、InitVar、init=False 和 __post_init__ 的边界排查常见 TypeError 与 ValueError,并掌握返回新对象的正确写法。282 收藏 -
ExitStack 的关键不是设置参数,而是在资源获取后登记清理动作。本文说明 enter_context、callback、push、pop_all 的区别,并按生命周期排查资源未关闭、清理顺序错误、栈复用和异步混用问题。411 收藏 -
用 asyncio.timeout、wait_for 和 wait 处理 Python 异步超时:厘清作用域、取消、TimeoutError、shield 以及 done/pending 的差异,快速定位超时语义问题。365 收藏 -
排查 asyncio TaskGroup 失败时,区分 ExceptionGroup、兄弟任务取消和清理阻塞,使用 except* 分类处理,并正确传播 CancelledError。231 收藏 -
跨平台使用 pathlib 读写文本时,显式设置 encoding,结合 BOM、原始字节和 errors 策略排查乱码与 UnicodeDecodeError,并保持读取和写回的编码契约。235 收藏