浅析 if __name__ == "__main__":
if __name__ == "__main__":
说明
-
1、一个python文件有两种使用的方法,第一是直接作为程序执行,第二是import到其他的python程序中被调用(模块重用)执行;
-
2、因此
if __name__ == 'main':
的作用就是控制这两种情况下执行代码的过程,__name__
是内置变量,当此py文件被当做模块导入到其他文件中使用
时,__name__
用于表示当前模块(此py文件名)的名字;而在当前文件下作为程序执行时,__name__
的值为__main__
。故在if __name__ == 'main':
下面的逻辑只有在当前文件作为程序直接执行时才会被执行,而被导入(import)到其他程序中时,其下方的逻辑是不会被执行的; -
3、在 Windows 中,子进程会自动导入(import)启动它的这个py文件,而在自动导入(import)时是会执行创建进程的逻辑语句的。所以如果不加
if __name__ == "__main__":
的话就会递归创建子进程; -
4、故必须把创建子进程的逻辑部分用
if 判断
保护起来,当自动导入(import)时__name__ 不等于__main__
,其下方的创建子进程的逻辑代码便不会递归运行。
抟扶摇而上者九万里