当前位置: 首页 > 后端技术 > Python

Python的特殊变量__name__

时间:2023-03-26 17:56:11 Python

在很多Python代码中,我们可能经常会看到变量__name__。对于初次使用Python的用户来说,这个变量可能不是很熟悉。这个很好理解,变量__name__是一个标识一个Python程序的全局变量。我们都知道Python没有main()函数。如果对main函数不是很熟悉,可以自己补上。简单的说,所有的程序在运行的时候都需要一个入口。main函数是程序的入口,一般在程序启动之后。所有程序都从main函数执行。__name__是内置于Python解释器中的变量,用于标识当前正在运行的模块的名称。这有点类似于Java中的this.getClass().getName()。示例和测试下面我们可以进行一些示例和测试。假设我们有以下2个文件。文件ImportVarName.py作为模块导入。文件源码如下:#-*-coding:utf-8-*-#PPython__name__moduleImportVarName#Author-https://www.ossez.comprint("ImportVarName__name__=%s"%__name__)if__name__=="__main__":print("ImportVarNameisbeingrundirectly")else:print("ImportVarNameisbeingimported")VarName.py文件可以认为是我们的main函数文件。文件源码如下:#-*-coding:utf-8-*-#Python__name__moduleTest#Author-https://www.ossez.comimportImportVarNameprint("MainVarName__name__=%s"%__name__)if__name__=="__main__":print("VarNameisbeingrundirectly")else:print("VarNameisbeingimported")运行结果及解释以上运行结果的一些解释如下。如果我们直接运行源代码:VarName.py,我们会得到如下输出。ImportVarName__name__=ImportVarNameImportVarNameisbeingimportedMainVarName__name__=__main__VarNameisbeingrundirectlyProcessfinishedwithexitcode0可以看到是因为我们是从我们认为是main函数运行的,但是在main函数运行之前,我们导入了模块ImportVarName,所以在模块ImportVarName中的__name__变量会被定义为你导入的模块的名称。如果直接运行导入的模块ImportVarName,模块ImportVarName中的__name__会显示为__main__。https://www.ossez.com/t/python-name/13393