Hasty Briefsbeta

双语

PEP 810 – Explicit lazy imports

7 months ago
  • #imports
  • #python
  • #performance
  • PEP 810 在 Python 3.15 中引入了显式惰性导入机制,允许开发者延迟模块加载直至首次使用
  • 惰性导入可降低启动时间和内存占用,尤其有利于命令行工具和具有复杂依赖图的应用
  • 该提案保持向后兼容性,仅当通过`lazy`关键字或`__lazy_modules__`属性显式请求时才启用惰性导入
  • 惰性导入是线程安全的并支持子解释器,借助自适应解释器优化实现了极小的性能开销
  • PEP 包含全局控制机制(`-X lazy_imports`启动参数、`PYTHON_LAZY_IMPORTS`环境变量)和通过`sys.set_lazy_imports_filter()`的细粒度过滤
  • 通过异常链增强错误处理,同时显示惰性导入的定义位置和首次访问位置
  • 参考实现已发布在GitHub,PEP文档中讨论了替代设计方案和已否决的构想