Python's Lazy Imports: Why It Took Three Years and Two Attempts
2 months ago
- #Python
- #Performance
- #Programming
- Python 3.15 引入'lazy'关键字用于延迟导入,以提升启动速度并降低内存占用
- 由于性能需求迫切,Meta和Hudson River Trading(HRT)等公司已在Python分支(Cinder和HRT分支)中实现了延迟导入
- PEP 690曾提议通过全局标志实现延迟导入,但因可能导致生态碎片化和实现复杂化被否决
- 修订后的PEP 810提案引入显式'lazy import'语法,解决前期顾虑并获得指导委员会批准
- 延迟导入机制将模块加载推迟到首次使用时,通过避免非必要导入显著加速CLI工具
- PEP 810方案无需修改Python核心字典结构,转而采用轻量级代理实现延迟导入
- 通配符导入(from foo import *)不支持延迟模式,导入错误将延迟到首次使用时抛出
- 该特性经过三年验证期,收集了大型代码库的实际运行证据确保设计健壮性
- Python指导委员会于2025年11月全票通过PEP 810,该功能将随2026年10月发布的Python 3.15上线