【学习笔记】Python中主函数调用的方式

最近在使用以下这段代码的时候产生了一些疑问:

我的文件名称不叫main,但为什么我运行这个主函数的时候也可以运行呢?

python 复制代码
if __name__ == "__main__":
    train()

于是写篇文章记录一下,详细见下表

__name__ 的行为规律:

执行方式 __name__ 的值 会不会执行 if __name__ == "__main__"
python some_file.py "__main__" ✅ 会执行
import some_file "some_file"(模块名) ❌ 不会执行

总结:

只有在直接运行某一个文件的时候,这个文件的name值才会被设置为main,无论这个文件叫什么名字。除此之外,如果是导入文件的情况下,都是以这个文件的名称作为name值。

于是,当涉及到模型训练或参数更新时,为了防止调用文件时,训练函数也被运行,我们一般选择使用以上开头的主函数命名方式,这样,当有import 文件名时,main函数里面的内容便不会自动运行,保证了代码的模块化和可复用性,不会意外触发训练或其他副作用。

相关推荐
babe小鑫24 分钟前
生物统计学专业校招:SAS、R、Python学习顺序实用指南
python·学习·r语言
David猪大卫1 小时前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
辣知1 小时前
辣知·化智53 榆林石峁遗址的石城文明
学习
江湖人称菠萝包1 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter6-动态链接库
windows·笔记
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(68):Memp——把历史轨迹沉淀为可检索、可纠错的程序性记忆
论文阅读·人工智能·学习·开源·github
知识分享小能手1 小时前
深度学习学习教程,从入门到精通,自编码器 — 完整知识点与代码案例(14)
人工智能·深度学习·学习
我命由我123452 小时前
人脸识别 - 去重时间窗口
java·开发语言·python·学习·java-ee·学习方法·python3.11
minglie12 小时前
espidf的espnow的配对
学习
宵时待雨2 小时前
linux笔记归纳18:传输层协议TCP
linux·网络·笔记·网络协议·tcp/ip
逆境不可逃2 小时前
Pi Agent 学习笔记:一次提问背后的工具调用循环
java·笔记·学习