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

Python模块导入疑问:仅导入func1却输出‘the end’的原因

为啥导入单个函数还会输出'the end'?

这是Python模块导入的正常行为:只要你从某个模块导入任何内容(哪怕只是一个函数),Python都会先完整运行一遍整个模块的代码,之后才会把你要的函数/对象导入到当前脚本里。

你在module1.py里写的print("the end")是模块的顶层代码(没放在函数、类或者条件判断里),所以在模块被导入的过程中,这行代码会被直接执行,也就出现了你看到的输出。

怎么让这行代码只在直接运行模块时执行?

把print("the end")放到if __name__ == "__main__":这个判断块里就行,修改后的module1.py代码如下:

def func1(num):
    # 这里写你的func1逻辑
    print(f"func1运行,参数:{num}")

if __name__ == "__main__":
    print("the end")

这样一来,只有当你直接运行module1.py(比如在终端敲python module1.py)时,才会输出'the end';当其他脚本导入这个模块时,这行代码不会被触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:40:46