一个python文件用2种运行方法,1种是直接运行(例如 python test.py),另一种是作为模块被其他程序引用(import test),而 if __name__ == '__main__'的作用就是在该模块被直接运行时运行 if __name__ == '__main__'的子语句,被其他作为模块引用时对 if __name__ == '__main__'的子语句不再引用。
例子:
test1.py
print "if before"
if __name__=="__main__":
print "if after "
test2.py
import test1
print "test2"
每个python模块(test1.py,test2.py)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(test1.py);如果import到其他模块中,则__name__等于模块名称(test1)。而“__main__”等于当前执行文件的名称(test2.py)。进而当模块被直接执行时,__name__ == '__main__'结果为真,被导入结果为假。