1.用法
当作为一个py文件单独执行时,无论是否在if __name__ == '__main__'
下的代码都会被执行。而当作为一个模块被引用时,if __name__ == '__main__'
下的代码不会被执行。因此当我们想在主文件中引用其他模块而不是让其执行时,就需要添加这个代码。
2.原理
1)__name__
:python内置类属性,代表对应程序名称。
2)__main__
:并非是一个属性或变量,而是当文件作为主函数时,它的__name__
必然为__main__
。
每个py文件内都有一个名为__name__
的变量,当文件被执行时__name__
被赋值为文件名,若文件为主函数,则必然__name__ =='__main__'
,那么if条件成立,并运行下面的代码。而当文件作为一个模块被引用时,由于主函数不是这个文件,它的__name__
变为文件名,则__name__
不等于__main__
,if条件不成立,即不运行if下面的代码。