📌  相关文章
📜  Python的__name __(特殊变量)

📅  最后修改于: 2020-01-13 11:56:46             🧑  作者: Mango

由于Python中没有main()函数,因此当将运行Python程序的命令提供给解释器时,将执行0级缩进的代码。但是,在此之前,它将定义一些特殊变量。__name__是这样的特殊变量之一。如果源文件作为主程序执行,则解释器将__name__变量设置为具有“ __main__”。如果从另一个模块导入该文件,则将__name__设置为模块的名称。
__name__是一个内置变量,其结果为当前模块的名称。因此,可以通过将它与if语句结合使用来检查当前脚本是单独运行还是正在其他位置导入,如下所示。
考虑两个单独的文件File1和File2。

# File1.py
print "File1 __name__ = %s" %__name__
if __name__ == "__main__":
    print "File1被运行"
else:
    print "File1被导入"
# File2.py
import File1
print "File2 __name__ = %s" %__name__
if __name__ == "__main__":
    print "File2被运行"
else:
    print "File2被导入"

现在,为解释器提供了运行File1.py的命令:

Python File1.py

输出:

File1 __name__ = __main__
File1被运行

然后运行File2.py:

Python File2.py

输出:

File1 __name__ = File1
File1被导入
File2 __name__ = __main__
File2被运行

如上所示,当直接运行File1.py时,解释器将__name__变量设置为__main__。并通过File2.py导入运行时,__name__变量设置为Python脚本的名称,即File1。因此,可以说,当使用诸如Python File1.py之类的命令从命令行运行脚本时__name__ ==“ __main__”是程序的运行入口