python教程技术文章
-
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教程 | 19小时前 | 标准库 · 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 收藏 -
Python 3.15 新增的 sentinel 类型适合表示“参数未提供”这一状态。本文从 None、object() 和类型注解的差异出发,给出默认值设计、身份判断、复制序列化和旧版本兼容的实用写法。381 收藏 -
Python free-threading 不是把解释器换成一个开关就结束了:原生扩展还要匹配 free-threaded wheel,声明不使用 GIL,并补足此前被 GIL 掩盖的线程安全测试。本文按解释器、轮子、模块声明和 CI 四层整理一份可执行兼容清单。439 收藏 -
multiprocessing 进程池把任务送入子进程时,函数、参数和返回值都要跨进程传递。本文结合 Python 3.14 起的启动方式变化,解释不可序列化对象为什么暴露、哪些写法容易只在 fork 下工作,以及如何用模块顶层函数、数据描述和 initializer 重构稳定边界。255 收藏