You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python导入模块时模块函数先于print语句执行的原因咨询

现象原因解释

这是Python模块导入的标准执行逻辑导致的,和你写print的顺序没有关系:

  • 解释器碰到import/from ... import ...语句时,会先暂停当前文件的执行,转去加载对应的被导入模块:按从上到下的顺序跑完模块里所有顶层作用域的可执行代码,等模块全部加载完成,才会回到当前文件,继续执行导入语句后面的代码。
  • 你看到models里的逻辑先跑,说明你在eq_melting.py、frac_melting.py两个文件的最外层(也就是没有缩进、不在任何def/class代码块内部的位置)直接写了打印、函数调用这类会立刻执行的代码,这些代码会在导入阶段就被触发,自然比main.py里导入后的print先运行。

正确的模块编写方式

模块文件里只放函数、类的定义,不要在顶层直接写执行业务逻辑的代码。如果需要给单个模块写自测代码,统一放到if __name__ == '__main__':代码块下即可:

# 函数定义部分,导入时只会加载函数,不会执行内部逻辑
def eq_melting_calc():
    print("平衡熔融计算逻辑")

# 以下代码仅在你直接运行当前这个py文件时执行,被其他文件导入时不会触发
if __name__ == '__main__':
    eq_melting_calc()
    print("模块自测输出")

内容的提问来源于stack exchange,提问作者Sanju Halder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 19:18:26