Python中入口函数为什么用if __name__ == '__main__'

是因为__name__是一个内部变量,其定义为:

  • 当该文件为入口文件代码时,__name____main__
  • 当该文件为import时,__name__为文件名;

比如foo.pybar.py的内容如下:

# foo.py
import bar
print(__name__)

# bar.py
import foo
print(__name__)

则执行如下:

-> % python foo.py 
foo
bar
__main__

-> % python bar.py                           
bar
foo
__main__

因此使用if __name__ == '__main__'能够保证只有在文件作为入口时执行,在被import时不执行。