Hasty Briefsbeta

双语

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上线