if __name__ == '__main__' 有什么作用?

if __name__ == '__main__' 有什么作用?

  • 2019-7-31

__name__ 是 Python 的内置变量,指的是当前模块名。当该脚本被直接运行时,__name__ 的值等于 __main__; 当脚本被以模块调用的方式运行时,__name__ 的名称等于模块的名称(一般是这个脚本的文件名)。

看下面的测试 Demo: file

module.py 被直接运行时,打印的结果是 __main__,而被以 app.py 以模块调用的形式执行则会打印 module(而这恰恰是脚本的文件名)。

回到

1
2
if __name__ == '__main__':
...

通过这个条件判断,我们就可以把被以模块调用时不需要执行的但被直接运行时需要执行的代码放在这里来,这就是 if __name__ == '__main__' 的最一般作用。