【学习笔记】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函数里面的内容便不会自动运行,保证了代码的模块化和可复用性,不会意外触发训练或其他副作用。

相关推荐
玖玥拾2 小时前
Unity 3D 笔记(十一)UI 框架进阶:栈弹窗交互、BasePanel 基类虚方法、DoTween 界面动画
笔记·3d·unity
FellAveal2 小时前
【Go语言入门学习笔记】Part13.结构体与接口
笔记·学习·golang
学计算机的计算基2 小时前
回溯算法下篇:四道经典题讲透约束剪枝、原地标记、预计算与状态压缩
java·笔记·算法
雷工笔记2 小时前
Ubuntu迁移记录
笔记·ubuntu
Leekwen2 小时前
认识人与人的大不同
学习·思考·生活·认知高度·审视自己
一只小菜鸡..2 小时前
Stanford CS144 学习笔记 (九):大师访谈与互联网的未来
笔记·学习
范什么特西3 小时前
每日学习-06
学习
十月的皮皮3 小时前
STM32从零到量产开发:四路继电器工业控制模块开发实战笔记(小白视角)
c语言·笔记·stm32·stm32cubemx·hal库
疯狂打码的少年3 小时前
【软件工程】软件项目管理(人员/产品/过程/项目)
笔记·软件工程
woshihuanglaoshi3 小时前
参数验证_Flutter在鸿蒙平台确保路由参数类型安全
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统