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

相关推荐
漂流瓶jz4 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫4 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
weelinking4 小时前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理
稳联技术老娜4 小时前
DeviceNet主站怎么连接西门子PLC,Profinet网关配置手册(那智机器人)
服务器·网络·数据库
9分钟带帽5 小时前
linux_系统开机自动执行shell脚本
linux·服务器
程序大视界5 小时前
【Python系列课程】Python正则表达式(下):环视、命名分组与日志实战
开发语言·python·正则表达式
修己xj5 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
TickDB5 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
枫叶v.5 小时前
Agent 分层存储架构设计:从记忆方法到中间件选型
开发语言·python
水兵没月5 小时前
逆向实战小记——某ToB商城网站分析学习
python·网络爬虫