python教程技术文章
-
singledispatchmethod 继承后没有命中重载,通常不是继承失效,而是分派参数、注册对象或装饰器顺序与预期不同。本文用一个消息适配器项目拆解定位方法。362 收藏 -
Python 的 bisect_left 和 bisect_right 分别找到重复分数的左、右插入点,两个下标组成左闭右开区间,直接切片即可得到全部匹配项。118 收藏 -
遇到遗留命令或 POSIX 系统传来的非 UTF-8 环境变量时,Python 的 os.environb 可以保留原始 bytes。本文按触发场景、支持检查、读取流程和显式解码说明怎样安全接入,并梳理它与 os.environ 的同步关系及失败处理。464 收藏 -
Python contextlib.ContextDecorator 让同一个上下文管理器同时支持 with 和函数装饰器。本文说明重复调用、__enter__ 返回值、__exit__ 异常传播和显式 with 的选择边界。242 收藏 -
Python contextlib.chdir 会在 with 进入时切换当前工作目录,并在退出时恢复进入前的目录。本文用嵌套和异常场景说明恢复顺序,再解释线程、异步和 yield 场景的全局状态风险。158 收藏 -
Python functools.cached_property 的缓存写在实例同名属性上。修改源数据后删除该属性,下一次读取就会重新计算;本文同时说明 __dict__、__slots__ 与并发访问边界。463 收藏 -
Python 3.10 起,bisect.insort 可以用 key 提取对象的排序字段:key 只参与二分查找,插入时仍保留完整对象。本文用一个小型排行榜说明重复分数、insort_left 与列表插入复杂度。106 收藏 -
文章 · python教程 | 1天前 | 标准库 · python · 数据处理 · 问题排查 · collections.Counter 库存扣减 Python Counter.subtract 缺失项目 负计数
Counter.subtract 会保留零值和负值,真正判断缺失项目不能只看扣减结果。本文用库存与需求示例区分原始不存在、数量不足和恰好用完,并给出可复用的诊断函数。410 收藏 -
解释 ChainMap 查找层与写入层的差异,演示用 maps 显式更新指定配置、用 new_child 隔离修改,以及何时应该封装深层写入规则。390 收藏 -
Python defaultdict 的下标读取会触发 __missing__,调用 default_factory 并把缺省值写回字典。本文对比 []、get()、in 和 keys/items 的差异,帮助你区分主动初始化与只读查询。482 收藏 -
在批量导入和流式处理里,itertools.compress 可以按位置消费数据与布尔选择器,不必先构造完整列表。本文重点说明长度不一致时的停止边界、惰性迭代和选型取舍。265 收藏 -
解释 itertools.accumulate 为什么不会自动按标记重置,并给出先切分后累计、惰性生成器以及 groupby 配合累计的完整工作流。233 收藏 -
本文围绕 itertools.pairwise 的相邻记录比较,说明如何在保留流式处理优势的同时补回首条和末条信息,并覆盖空输入、单条输入和多条输入的边界处理。172 收藏 -
Python logging 的 Formatter 不只是拼接字符串,还决定 LogRecord 如何变成稳定的结构化日志。本文用 extra、defaults 和自定义 Formatter 统一业务字段、异常信息与 JSON 输出。185 收藏 -
Python 3.15 把 frozendict 加入内置类型。本文从默认配置、运行时覆盖和缓存键三个场景出发,说明如何构造与合并不可变映射,并梳理浅不可变、哈希条件和 dict 类型判断的边界。192 收藏