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程序时非常有用,因为它允许你创建可复用的代码库(即模块),同时又能在需要时直接运行这些模块以进行测试或执行特定的任务。

相关推荐
Shirley~~3 分钟前
figma Mcp
前端·ai编程
Bacon5 分钟前
Gstack + Superpowers:当 AI 编程的"脑子"和"手脚"终于在一起了
前端·人工智能
喵个咪9 分钟前
拒绝过度封装!GoWind Admin:基于Element Plus重塑中后台CRUD开发范式
前端·vue.js·typescript
treesforest15 分钟前
机房IP是什么?有什么危害?如何识别?
网络·数据库·python·网络协议·tcp/ip·网络安全
Komorebi_999933 分钟前
LangChain Day5 课程:Agent 智能代理
前端·langchain·大模型
Yupureki42 分钟前
《MySQL数据库基础》8.复合查询
linux·运维·服务器·网络·数据库·mysql
方芯半导体43 分钟前
ST系列MCU EtherCAT协议栈框架结构详解
服务器·网络·数据库·网络协议·机器人·自动化·工业以太网
七牛云行业应用1 小时前
别等了!xAI 的终端编码 Agent 来了——Grok Build 0.1 安装到并行 Agent全流程
前端
咕白m6251 小时前
Excel 工作表名称读取(Python 实现)
后端·python
Asmewill1 小时前
LangGraph学习笔记三(State)
前端