详解Python中__name__的意义以及作用

苏见山
苏见山
发布时间:2026-10-13| 6人浏览过
原创

本文深入解析Python中__name__系统变量的工作机制。通过对比直接运行脚本与导入模块两种场景,阐明__name__如何从__main__切换为模块名。重点讲解if __name__ == "__main__":语句在大型工程中标记程序入口的核心作用,帮助开发者理解模块执行流程与代码复用逻辑。

Python __name__变量基础与运行机制

首先创建一个名为test.py的文件,在该文件中定义一个函数,并在函数定义完成后直接调用执行。

test.py


def HaveFun():
 if __name__ == '__main__':
  print('I am in my domain,my name is %s' % __name__)
 else:
  print('Someone else calls me!,my name is %s' % __name__)


HaveFun()

直接运行test.py文件的输出结果如下:

I am in my domain,my name is __main__

接着创建另一个文件main.py,其代码如下:

main.py


import test

 test.HaveFun()

执行main.py文件后,输出结果如下:

Someone else calls me!,my name is test Someone else calls me!,my name is test

此处打印了两次信息。第一次是在main.py执行import test语句时触发的打印,第二次则是调用test.HaveFun()函数内部的打印。可以看出,此时

__name__的值已发生变化,由之前的__main__变为了模块名称test。

__name__与__main__的核心作用总结

总结:

1、__name__是一个系统变量,用于显示当前模块执行时的名称。如果当前程序是直接运行的模块,__name__的值即为__main__;如果是被其他模块导入,则__name__的值为该模块的文件名(不含扩展名)。 2、__main__通常作为程序的入口点,类似于C语言中的main函数。在大型工程项目中,常使用if __name__ == "__main__":来判断并标识整个工程的启动入口。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。