Python主函数详解:__main__的用法与最佳实践

这是文章《Python主函数》的第1部分(共1部分)。

只有当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方法保留任何名称,但是最佳实践是将其命名为main()方法。下面的代码是完全正确的,但不推荐使用。
    def main1():
        print("python main function")
        
    if __name__ == '__main__':
        main1()
python main function, python if name main

Python的主函数作为模块。

现在让我们将上述的Python源文件作为一个模块引入到另一个程序中,命名为python_import.py。

import python_main_function

print("Done")
python main method, python if main
Hello
__name__ value:  python_main_function
Done

请注意,第一和第二行是从python_main_function.py源文件中打印出来的。请注意__name__的值不同,因此主方法不会被执行。请注意,python程序语句是逐行执行的,因此在if条件之前重要的是先定义main()方法以执行主方法。否则,将会出现NameError:name ‘main’未定义的错误。以上就是关于python主函数的全部内容。参考资料:Python文档

bannerAds