__name __(特殊变量)在Python中

与其他编程语言不同,python并非旨在明确地从主函数开始执行代码。名为__name__的特殊变量提供了main函数的功能。由于它是python语言的内置变量,因此我们可以编写一个程序来查看此变量的值,如下所示。

print type(__name__)

print __name__

运行上面的代码给我们以下结果-

<type 'str'>

__main__

如上所示,__name__变量的值是字符串数据类型,等于___main__。

以下是__name__变量的两个主要功能。

1. 当您运行任何不引用任何其他脚本的编写良好的独立python脚本时,__name__变量的值等于__main__。

让我们编写一个名为standalone.py的程序来说明此功能。

def func1():

   print 'The value of __name__ is ' + __name__

if __name__ == '__main__':

   func1()

运行上面的代码给我们以下结果-

The value of __name__ is __main__

正如预期的那样,__name__变量的计算结果为__main__,因此为输出。

2. 第二个功能是关于将一个python脚本导入另一个。在这种情况下,似乎有两个不同的作用域可以视为main()函数。第一个范围可以是当前正在运行的程序的__main__变量,第二个范围可以是当前程序中使用的导入脚本的__main__变量的范围。

那么将使用哪个__main__变量 

当您从导入的脚本运行函数时,__name__变量将计算为脚本的实际名称,而不是__main__。

但是,当您从当前程序中找到name变量的值而没有引用导入的脚本时,它将按预期评估为__main__,因为这是程序在0级缩进的范围。

下面的程序说明了此示例。

示例

import standalone as sa

print('Running the imported script')

sa.func1()

print('\n')

print('Running the current script')

print 'The value of __name__ is ' + __name__

输出结果

运行上面的代码给我们以下结果-

Running the imported script

The value of __name__ is standalone

Running the current script

The value of __name__ is __main__

这种方法的有用之处在于,如果使用了__name__ ==“ __main__”:的代码,则python解释器将检查是否正在解析当前执行的脚本,或者是否正在临时解析另一个外部脚本。这样,程序员可以根据情况选择从外部脚本以及当前执行的脚本中运行代码行,从而控制程序不同部分的行为。

以上是 __name __(特殊变量)在Python中 的全部内容, 来源链接: utcz.com/z/317075.html

回到顶部