29.4. __main__ — 顶层脚本环境


'__main__' 是顶层代码执行的作用域的名称。模块的 __name__ 在通过标准输入、脚本文件或是交互式命令读入的时候会等于 '__main__'

模块可以通过检查自己的 __name__ 来得知是否运行在 main 作用域中,这使得模块可以在作为脚本或是通过 python -m 运行时条件性地执行一些代码,而在被 import 时不会执行。

if __name__ == "__main__":
    # execute only if run as a script
    main()

对软件包来说,通过加入 __main__.py 模块可以达到同样的效果,当使用 -m 运行模块时,其中的代码会被执行。