在Python中的__name__

在Python中的__name__

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

__name__是什么意思

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

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

示例:

为了进一步理解,我们使用一个示例。创建一个名为testing.py的Python脚本,并将以下代码添加到其中:

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

anything()

输出:

Value of the __name__ :  __main__

解释:

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

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

示例:

# importing testing.py
import testing

testing.anything()

输出:

Value of the __name__ : testing

说明:

因为我们显示了 testing.py 模块的 __name__ 变量的值,通过上面的代码输出,我们可以看到该变量的值是 testing。

使用条件 if __name__ == '__main__'

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

示例:

# importing testing.py
import testing

if __name__ == __main__:
    testing.anything()

在这里,字符串 __main__ 用于确定当前模块或脚本是否独立执行。在 __name__变量 的名称两侧的双下划线表示它是一个 保留或特殊关键字。

name在Python中的代码示例

如前所述,当我们运行一个代码文件时, __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 中的 __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的那一行。然而,在执行Python程序之前,会生成一个__name__变量。在Python中,这个变量可以用来替代主函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程