Python中入口函数为什么用if __name__ == '__main__'
是因为__name__
是一个内部变量,其定义为:
- 当该文件为入口文件代码时,
__name__
为__main__
; - 当该文件为import时,
__name__
为文件名;
比如foo.py
和bar.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时不执行。