Python main() 函数

2025年3月17日 | 阅读 3 分钟

在本教程中,我们将学习 Python 编程语言中的 main() 函数。我们还将了解如何利用 Python 程序中的 __name__ 属性,以便在各种上下文中动态执行它。

让我们开始了解 Python 中的 main() 函数。

了解 Python 中的 main() 函数

对于许多编程语言来说,main() 被认为是一个特殊的函数,也称为程序文件的执行入口点。然而,Python 编程语言的解释器会按顺序从文件顶部逐行执行代码,并没有一个显式的 main() 函数。

Python 提供了其他约定来定义执行入口点。其中之一就是使用 main() 函数以及 Python 文件的 __name__ 属性。

现在,让我们来理解 Python 编程语言中的 __name__ 属性。

了解 Python 中的 __name__ 属性

__name__ 属性是 Python 中的一个特殊核心变量,它显示当前模块的名称。

此属性根据运行 Python 文件的位置显示不同的值。让我们通过一个例子来更好地理解 __name__ 属性。

将 Python 文件作为脚本执行

假设我们有一个名为 myworld.py 的 Python 文件,其中包含以下内容:

文件:myworld.py

输出

$ python myworld.py
__main__

说明

在上面的程序文件中,我们打印了 __name__ 属性的值。结果,__name__ 变量的值被设置为 __main__

将 Python 文件作为模块执行

我们也可以将 Python 文件作为模块执行。要做到这一点,我们需要将所需文件导入另一个 Python 程序。让我们通过以下示例来正确理解这个概念。

假设我们在 myworld.py 文件所在的同一目录中创建了一个名为 python_main.py 的 Python 文件,其中包含以下内容:

文件:python_main.py

输出

$ python python_main.py
myworld

说明

在上面的程序文件中,我们导入了一个名为 myworld 的模块。结果,当我们执行 python_main.py 文件时,程序会运行模块文件中的所有代码。但是,我们可以看到它显示的是模块名,即 myworld,而不是显示 __main__

这是因为,在将 Python 文件作为模块执行的上下文中,模块名称本身被分配给 __name__ 变量。

使用 if 语句结合 __name__ 变量

既然我们已经正确理解了 __name__ 属性是如何被赋值的,我们可以利用 if 语句来在不同的上下文中以不同的方式运行同一个 Python 文件。

让我们看下面的例子,其中我们更改了 myworld.py 文件的内容。

文件:myworld.py

输出

$ python myworld.py
This is my Python program.

说明

在上面的代码片段中,我们定义了一个名为 main() 的函数来为用户打印一些字符串。然后,我们使用了 if 条件子句来检查 __name__ 变量的值是否等于 __main__,如果是,则执行 main() 函数。结果,当我们执行 myworld.py 文件时,会为用户打印字符串消息。

但是,当我们通过在 python_main.py 中导入它将文件作为模块执行时,程序不会产生任何输出,因为 main() 函数未被调用。

因此,我们可以得出结论,我们在 myworld.py 文件中定义的自定义 main() 函数只能作为独立脚本执行,而不能作为导入的模块执行。

这是显式定义 Python 中 main() 函数的标准方法。它是 Python 文件 __name__ 属性最流行的用例之一。