Python main() 函数

Python main() 函数

在本教程中,我们将学习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_main.py的Python文件,其内容如下:

文件:python_main.py

import myworld

输出:

$ python python_main.py
myworld

解释:

在上面的程序文件中,我们导入了一个名为 myworld 的模块。因此,当我们执行 python_main.py 文件时,程序会运行模块文件中的全部代码。然而,我们可以观察到,它显示的模块名称是 myworld 而不是 __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__ 属性的最受欢迎的使用案例之一。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程