在盐城亭湖区台式电脑上排查 Python 程序时,看到能创建很大的 range,却在 len 上收到 OverflowError,先要区分“创建 range”和“获取长度”。按 Python 3.14 的 CPython 文档,len 对超过 sys.maxsize 的长度会抛 OverflowError,例如长度为二的百次方的 range 写法;range 能表示该区间,不表示 len 返回接口能容纳该长度。这是 CPython 的 len 实现限制,不应直接当成内存不足,也不要用展开 range 的方式验证。

适用:本说明只按 Python 3.14、CPython 实现说明,场景限于盐城亭湖区台式电脑上的自有程序只读核对。只观察 len 对超大 range 的异常,不创建列表展开客户巨大范围,不调用客户自定义方法或改原数据。若解释器不是 CPython 或版本不同,需按对应实现另行核对。
观察:一,在隔离的最小代码中只构造 range 并调用 len,记录异常类型和消息;若得到 OverflowError,且对应长度超过 sys.maxsize,则符合本题事实;若为其他异常,则另查参数和实现。二,用长度远小于 sys.maxsize 的 range 作对照并调用 len;若正常返回整数,说明基本长度获取可用;若对照也异常,则问题不在超大长度。三,只读查看解释器名称、版本和运行位数;若确认是 CPython 3.14 且长度超过当前解释器的sys.maxsize,则按本说明判断;若不是,则记录差异后再分析。观察时不要用列表展开超大 range,也不要在生产程序里调用未知客户方法。
风险:把 range 展开成列表可能造成长时间占用和内存压力;把 OverflowError 直接当内存不足会掩盖真实原因;在客户程序上随意调用 len 或切片,可能触发不期望的副作用。超大 range 应坚持只构造、不展开,先保留异常原文,避免改动业务数据。
下一步:整理去敏材料,包括 Python 版本、解释器实现名称、异常类型与消息、触发代码的文字化形态、运行位数,以及是否仅在 len 时出现;材料中不要放完整巨大数值,可用超过当前解释器的sys.maxsize描述。需要咨询可拨打 400-877-9605。电脑快修网是信息展示与第三方维修对接平台,400-877-9605 只作咨询,实际范围和安排需确认。盐城亭湖区台式电脑上的自有程序排查,也应按只读、不展开原则准备信息后再决定后续处理。