Python中的__name__简介

Python中的__name__简介

Python的__name__特殊变量存储当前运行的Python脚本或模块的名称。Python __name__变量是在Python 3.0中添加的,在Python 2.x中不存在。当一个Python脚本或模块被执行时,__name__变量被赋值为当前Python脚本或模块的__main__。

__name__是什么意思?

Python有一个名为__name__的内置变量,它记录当前运行的模块或脚本的名称。__name__变量仅仅保存模块或脚本的名称,除非当前模块正在执行,在这种情况下__main__值被设置为它。

因此,如果一个Python脚本被导入到另一个Python脚本中,它的__name__变量应该在该Python脚本运行时始终具有__main__值。否则,它将具有模块的名称。

示例:

为了进一步理解这一点,让我们使用一个示例。用Python编写一个名为test.py的脚本,并添加以下代码:

# Code to define a function
def anything():
    print('Value of the __name__ : ', __name__)

anything()

输出:

Value of the __name__ :  __main__

解释:

当我们运行test.py脚本时,__name__变量的值被设置为__main__。

现在,让我们构建另一个名为main.py的Python脚本,并将之前的脚本导入其中。

示例:

# importing testing.py
import testing

testing.anything()

输出:

Value of the __name__ : testing

解释:

因为我们显示了test,py模块的__name__变量的值,所以我们可以从上面代码的输出中看到变量的值是testing。

使用if name == main条件:

我们使用if语句和条件__name__ == main来声明某些Python代码只应在直接运行脚本时执行。

示例:

# importing testing.py
import testing

if __name__ == __main__:
    testing.anything()

这里,字符串main用于确定当前模块或脚本是否独立执行。__name__变量名两边的两个下划线是为了让Python解释器知道这是一个保留的或特殊的关键字。

Python中name的代码示例:

如前所述,当我们运行一个代码文件时,__name__变量的值会变为__main__,因为代码是直接执行的,甚至不需要导入到另一个文件中。

代码:这是ScriptP1.py,一个代码文件。

# defining a function
def anything():
    print('It is a function in the ScriptP1.')

if __name__=='__main__':
    anything()
    print('Called from the ScriptP1.')
else:
    print('ScriptP1 is imported into another file.')

输出:

It is a function in the ScriptP1.
Called from the ScriptP1.

现在,让我们创建一个名为ScriptP2.py的新Python脚本文件,将ScriptP1.py导入其中,并尝试调用ScriptP1中定义的anything()函数。

代码:ScriptP2.py代码在这里提供:

import ScriptP1

if __name__=='__main__':
    ScriptP1.anything()
    print('Called from the ScriptP2.')

输出:

ScriptP1 is imported into another file.
It is a function in the ScriptP1.
Called from the ScriptP2.

当在ScriptP2内部运行ScriptP1的import语句时,__name__变量的值为ScriptP1(模块的名称),但由于ScriptP2是第一个执行的脚本,所以现在它的值为__main__。

打印name的值:

让我们在执行的每个阶段打印__name__变量的值,以帮助您更好地理解它。

示例:ScriptP1.py Python脚本的源代码如下:

print('Value or the variable __name__ : ' + __name__)

输出:

Value or the variable __name__ : __main__

例2:下面是ScriptP2.py脚本的源代码:

# importing the file ScriptP1.py
import ScriptP1

print('Value or the variable __name__ : ' + __name__)

输出:

Value or the variable __name__ : __main__

总结:

在大多数编程语言中,主方法或函数通常被用作执行任何程序的点。那么Python呢?Python程序(脚本)通常从第一行开始执行,这是程序的缩进级别0。不过,__name__变量会在Python程序执行之前生成。在Python中,这个变量可以用来代替main方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程