在本教程中,我们将学习 Python 编程语言中的 main() 函数。我们还将了解如何在 Python 程序中利用 name 属性,以便在各种上下文中动态执行它。
让我们从理解 Python 中的 main() 函数是什么开始。
理解 Python 中的 main()
函数
main() 被认为是几种编程语言的独特函数,也称为程序文件的执行点。但是, Python 编程语言的解释器从文件顶部开始串行执行每一行,没有显式的 main() 函数。
Python 提供了其他约定来定义执行点。其中之一是利用 python 文件的 main() 函数和 name 属性。
现在,让我们理解 Python 编程语言中的 name 属性。
理解 Python 中的 name 属性
name 属性是 Python 中显示当前模块名称的唯一核心变量。
该属性根据我们运行 Python 文件的位置提供不同的值。让我们考虑一个例子来更好地理解 name 属性。
将 Python 文件作为脚本执行
假设我们有一个名为 myworld.py 的 Python 文件,其中包含以下内容:
文件:myworld.py
print(__name__)
输出:
$ python myworld.py
__main__
说明:
在上面的程序文件中,我们已经打印了 name 属性的值。因此, name 变量的值被设置为 main 。
将 Python 文件作为模块执行
我们也可以将 Python 文件作为一个模块来执行。为了执行此操作,我们需要将所需文件导入另一个 Python 程序。让我们考虑下面的例子来正确理解这个概念。
假设我们在与 myworld.py 文件相同的目录下创建了一个 Python 文件 python_main.py ,内容如下:
文件:python_main.py
import myworld
输出:
$ python python_main.py
myworld
说明:
在上面的程序文件中,我们导入了一个模块作为我的世界。因此,当我们执行 python_main.py 文件时,程序运行模块文件中的完整代码。但是,我们可以观察到,显示的模块名称是我的世界,而不是显示 main 。
发生这种情况是因为,在作为模块执行 Python 文件的上下文中,模块名称本身被分配给 name 变量。
使用带有 name 变量的 if
语句
既然我们已经正确理解了如何为 name 属性赋值,我们可以利用 if 语句在不同的上下文中以不同的方式运行同一个 Python 文件。
让我们考虑下面的例子,我们已经更改了 myworld.py 文件的内容。
文件:myworld.py
def main():
print("This is my Python program.")
if __name__ == "__main__":
main()
输出:
$ 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 属性最流行的用例之一。