浅析 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__ ,其下方的创建子进程的逻辑代码便不会递归运行。

原文地址:https://www.cnblogs.com/fengting0913/p/13259501.html