浅谈 Python中if __name__ == ‘__main__‘:的工作原理

为了理解if __name__ == '__main__':的工作原理,我们需要先了解Python中的特殊变量__name__

每个Python模块都有一个内置的变量__name__。这个变量的值取决于如何执行模块:

  1. 如果模块是被直接运行的 (例如,你使用命令python myscript.py在命令行中执行脚本),那么模块的__name__变量会被设置为'__main__'
  2. 如果模块是被导入的 (例如,通过import myscript语句),那么模块的__name__变量会被设置为模块的名字(在这个例子中是'myscript')。

考虑以下情境:

假设我们有一个名为myscript.py的文件,其中包含以下内容:

python 复制代码
def some_function():
    print("Function in myscript!")

print("Top-level in myscript!")

if __name__ == '__main__':
    print("myscript is being run directly!")
else:
    print("myscript is being imported into another module!")
  • 直接运行模块 :如果我们在命令行中使用python myscript.py直接运行此模块,输出将会是:

    复制代码
    Top-level in myscript!
    myscript is being run directly!
  • 导入模块 :假设我们在另一个Python脚本中(例如,another_script.py)使用import myscript导入此模块。输出将会是:

    复制代码
    Top-level in myscript!
    myscript is being imported into another module!

使用if __name__ == '__main__':允许我们的Python脚本既可以独立运行,也可以作为模块导入,而不会执行不需要的代码。这提供了一种有效的方式来组织和封装代码,确保只有当模块直接运行时,某些代码(如单元测试或特定的脚本逻辑)才会被执行。

相关推荐
小蕾Java10 分钟前
PyCharm 软件使用各种问题 ,解决教程
ide·python·pycharm
Lucky_Turtle12 分钟前
【PyCharm】设置注释风格,快速注释
python
kunge1v530 分钟前
学习爬虫第四天:多任务爬虫
爬虫·python·学习·beautifulsoup
萧鼎39 分钟前
Python schedule 库全解析:从任务调度到自动化执行的完整指南
网络·python·自动化
B站_计算机毕业设计之家2 小时前
机器学习实战项目:Python+Flask 汽车销量分析可视化系统(requests爬车主之家+可视化 源码+文档)✅
人工智能·python·机器学习·数据分析·flask·汽车·可视化
羊羊小栈2 小时前
基于「多模态大模型 + BGE向量检索增强RAG」的航空维修智能问答系统(vue+flask+AI算法)
vue.js·人工智能·python·语言模型·flask·毕业设计
星期天要睡觉2 小时前
模型部署——Flask 部署 PyTorch 模型
pytorch·python·flask
weixin_456904272 小时前
SHAP可视化代码详细讲解
python
DTS小夏2 小时前
算法社Python基础入门面试题库(新手版·含答案)
python·算法·面试
刘一哥GIS3 小时前
Windows环境搭建:PostGreSQL+PostGIS安装教程
数据库·python·arcgis·postgresql·postgis