一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。
因此if __name__=="__main__": 的作用就是控制这两种情况执行代码的过程,在if __name__=="__main__": 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的
运行原理
每个python模块(python文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“__main__”等于当前执行文件的名称(包含了后缀.py)。所以当模块被直接执行时,if__name__=="__main__": 结果为真;而当模块被import到其他模块中时,__name__=="__main__": 结果为假,就是不fhak应的方法。
简单来说,就是__name__是模块的名字,“__main__”是被运行的模块的名字,两者相同才继续执行。