关于 if __name__ == '__main__' 的理解
简介:
Python为脚本语言,不像其他编译语言一样,在运行之前,先将程序编译成二进制,在运行。该语言运行方式为逐行解释运行,因此,在整个程序中没有统一的程序入口。
Python源文件除了可以被直接运行外,还可以作为模块被其他python文件导入。不管是直接运行还是被导入,.py文件的最顶层代码都会被运行,而当一个.py文件作为模块被导入时,有一部分代码可能不被希望运行。因此,该语句便起了至关重要的作用。
使用方法说明:
if __name__ == '__main__'
的意思是:
当.py文件被直接运行时,if __name__ == '__main__'
之下的代码块将被运行;
当.py文件以模块形式被导入时,if __name__ == '__main__'
之下的代码块不被运行。
运行原理:
a.py 代码如下:
print (__name__)
运行结果为: main
b.py 代码如下
import a
print(__name__)
运行结果为: a 和 main 其中 a为 a.py 的 name ,而 main 则为 b.py 的 name。
因此该语句主要就是判断是否是程序主入口,如果是程序主入口,则代码块执行,否则代码块不执行