假设这样一个a.py文件
def fun1():
........
def fun2():
.........
if __name__=='__main__':
......#执行的一些语句
当你执行这个a.py文件时, __name__
=
=
'__main__'为真,后面的语句可以执行
当你在别的文件中import a文件,当做模块使用时,__name__
=
=
'__main__'为假,后面的语句不执行了,只有前面定义的函数其作用.
如果没有这句话话,你在b.py中引用a的话,那些执行语句也会执行。假设你只想引用a中的函数,那你就得加这句话。
所以,这句话是为了让你把一个文件既可以当做可执行的,有可以当做可引入的模块。Python中当你引用一个模块时,它会执行所有的语句,你只想要函数的话,就用那句话挡住它不要往下找,只把函数找出来就好。
每个模块都有内置属性__name__,当是执行程序时,是‘__main__’,是导入模块时,是'a' 就是模块的名字。