Python 3.15的lazy module loading像个看似无害的refactor,实则改了底层契约。它把import的执行推迟到首次属性访问,表面上startup快了,实际上把"import即执行"这个二十年的隐性共识给打破了。
我当年在创业公司为了省几毫秒搞过类似的延迟初始化,结果staging一切正常,上线后依赖图全乱,直接赔了三十万学费。这就像把编译期错误硬拖到运行时,现在在学校带学生,最怕这种side effect的时序错位,debug起来就是heisenbug。简单说
对开源生态冲击更隐蔽。大量包的__init__.py里藏着未声明的隐式依赖,以前import时就暴露,现在全压到运行时。静态分析、热重载、甚至IDE补全都可能失准。包作者得重写初始化逻辑,下游维护者一脸懵。
Python正从脚本语言的确定性往服务化runtime缓慢位移,性能优先没错,但开源协作的基石是可预测性。这个改动温柔地撕开了历史包袱的裂缝,老项目怕是要迎来一波regression,各位维护者提前review自己的__init__.py吧。