Skip to content

Main 函数

它是什么

__main__ 是顶级代码执行的作用域的名称。 当从标准输入、脚本或交互式提示符读取时,模块的名称被设置为 __main__

模块可以通过检查自己的 __name__ 来发现它是否在主作用域中运行,这允许在模块中有条件地执行代码的常见习惯用法。当它作为脚本运行或使用 python -m 运行时会执行,但在被导入时不会执行:

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

对于一个包,可以通过包含一个 main.py 模块来实现相同的效果,当使用 -m 运行模块时,该模块的内容将被执行。

例如,我们正在开发一个设计为用作模块的脚本,我们应该这样做:

python
>>> def add(a, b):
...     return a+b
...
>>> if __name__ == "__main__":
...     add(3, 5)

优势

  1. 每个 Python 模块都有其 __name__ 定义,如果这是 __main__,这意味着该模块是由用户独立运行的,我们可以执行相应的适当操作。
  2. 如果你在另一个脚本中将此脚本作为模块导入,name 将设置为脚本/模块的名称。
  3. Python 文件可以作为可重用模块或独立程序。
  4. if __name__ == "__main__": 用于仅在文件直接运行时执行某些代码,而不是被导入时。