if __name__ == “__main__“

在Python中,if __name__ == "__main__": 这行代码非常常见,它用于判断当前运行的脚本是否是主程序。这里的 __name__ 是一个特殊变量,当Python文件被直接运行时,__name__ 被自动设置为字符串 "__main__"。但是,如果这个文件是被其他文件导入的,__name__ 则会被设置为该模块的名字(即不包含文件扩展名的文件名)。

这个机制允许一个Python文件既可以作为脚本直接运行,也可以作为模块被其他文件导入,而不会在执行导入时自动执行文件中的代码块。通过 if __name__ == "__main__": 判断,你可以控制哪些代码只在文件被直接运行时执行,哪些代码在被导入时执行(或者根本不执行)。

下面是一个简单的例子来说明这一点:

python 复制代码
# 文件名: example.py  
  
def func():  
    print("func() 函数被调用")  
  
if __name__ == "__main__":  
    print("example.py 被直接运行")  
    func()  
  
# 如果这个文件被直接运行,输出将会是:  
# example.py 被直接运行  
# func() 函数被调用  
  
# 但是,如果这个文件被其他Python文件通过 import 语句导入,比如这样:  
#  
# import example  
#  
# 那么 "example.py 被直接运行" 和 "func() 函数被调用" 这两行将不会被打印,  
# 因为此时 __name__ 的值不是 "__main__",而是 "example"(或导入时使用的其他别名,如果有的话)。  
# 只有 func() 函数会被导入,可以在其他文件中通过 example.func() 调用它。

这种方式在开发Python程序时非常有用,因为它允许你创建可复用的代码库(即模块),同时又能在需要时直接运行这些模块以进行测试或执行特定的任务。

相关推荐
用户059540174469 分钟前
把大模型记忆召回测试从 30 分钟手工核对压到 3 秒自动化,pytest + FAISS 这套组合救了我
前端·css
jufeng130710 分钟前
【系列:TDengine 工业物联网实战:从零搭起可运行系统 · 第 4 篇】
python·时序数据库·tdengine·asyncio
醉里博客10 分钟前
醉里起始页 Snavigation2.0:纯前端导航页的二开改造与性能优化实践
前端
努力搬砖的咸鱼15 分钟前
意图理解:让Agent从需求描述自动生成Pytest测试策略
人工智能·python·ai·单元测试·pytest·agent
人还是要有梦想的21 分钟前
ubuntu系统安装mysql8.1服务器步骤
服务器·ubuntu·mysql8.1数据库服务器
雪芽蓝域zzs25 分钟前
新建前端pnpm(vue js ) 仿若依项目(一)
前端·javascript·vue.js
vipbic25 分钟前
网站升级了,我却有点舍不得
前端·vue.js·后端
IT_陈寒25 分钟前
Java Stream并行处理让我数据库崩了两次
前端·人工智能·后端
恋猫de小郭26 分钟前
Flutter 3.47 首坑,analysis_options 问题连环回归
android·前端·flutter
2601_9563198827 分钟前
2026年下半年,量化学习要把交易认知和技术实现接起来
人工智能·python