问题反思:Python在import 一个模块时的底层处理逻辑
今天遇到一个问题,在测试项目中的一个大模型x时发现终端显示加载了两个模型,后来发现原来在import的时候导入的某些模块没有被注释掉,间接使另一个大模型y通过包的层层import默认执行其中的顶层代码被加载了出来,调了一下午才发现这个问题,详细记录一下出现这种问题的原理。如果模块中存在一些副作用,比如打印输出、执行函数等,这些副作用会在导入模块时被执行。这样,这些代码只有在直接运行模块时才会执行,而在导入模块时不会执行,从而避免了副作用的发生。被直接运行时才会执行”理解还不是很深刻,先放这里,随时回看。
原创
2024-04-24 18:49:32 ·
192 阅读 ·
0 评论