Python主函数

主程序: 仅当作为 Python 程序执行时才会执行主函数。正如你所知,我们还可以将一个 Python 程序作为模块导入,在这种情况下,Python 主方法不应该执行。
导入一个 Python 程序作为模块时,主函数不会执行。

Python 主函数

主函数是任何程序的入口点。但是 Python 解释器按顺序执行源文件代码,如果某个方法不是代码的一部分,则不会调用任何方法。但是,如果它直接是代码的一部分,则在将文件作为模块导入时将执行它。这就是为什么有一种特殊的技术来定义 Python 程序中的主方法,以便仅在直接运行程序时执行,而在导入为模块时不执行。让我们看看如何在简单的程序中定义 Python 主函数。 python_main_function.py

print("Hello")

print("__name__ value: ", __name__)


def main():
    print("python main function")


if __name__ == '__main__':
    main()
  • 当执行 Python 程序时,Python 解释器开始执行其中的代码。它还设置了一些隐含的变量值,其中之一是 __name__,其值设置为 __main__

  • 对于 Python 的主函数,我们必须定义一个 函数,然后使用 if __name__ == '__main__' 条件来执行这个函数。

  • 如果 Python 源文件被导入为 模块,Python 解释器会将 __name__ 的值设置为模块名称,因此 if 条件将返回 false,主方法将不会被执行。

  • Python 为我们提供了灵活性,可以为主方法命名任何名称,但最佳实践是将其命名为 main() 方法。下面的代码完全没问题,但不推荐。

    def main1():
        print("python main function")
    
    
    if __name__ == '__main__':
        main1()
    

以下图像显示了将 python_main_function.py 作为源文件执行时的输出。

Python 主函数作为模块

现在让我们将上述 Python 源文件作为模块并在另一个程序中导入。 python_import.py

import python_main_function

print("Done")

现在当上述程序执行时,会产生以下输出。

Hello
__name__ value:  python_main_function
Done

注意,前两行是从 python_main_function.py 源文件打印出来的。请注意,__name__ 的值不同,因此未执行主方法。请注意,Python 程序语句按行执行,因此在执行主方法的条件之前首先定义主() 方法非常重要。否则,您将收到错误消息,如 NameError: name 'main' is not defined。关于 Python 主函数就是这些。参考:Python 文档

Source:
https://www.digitalocean.com/community/tutorials/python-main-function