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的主函数作为模块。
现在让我们将上述的Python源文件作为一个模块引入到另一个程序中,命名为python_import.py。
import python_main_function
print("Done")

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