python中的main函数,Python main函数

  python中的main函数,Python main函数

  创建名为main()的函数来包含要运行的代码

  现在,您可以编写Python代码,该代码作为脚本从命令行执行和导入,并且没有副作用。接下来,您将学习如何编写代码,并让其他程序员轻松理解其含义。

  很多语言,比如C,C,Java等,都会定义一个叫做main()的函数,这个函数会在程序编译的时候被操作系统自动调用。这个函数通常被称为入口点,因为它是程序执行的起点。

  相比之下,Python没有特殊的函数作为脚本的入口点。实际上,入口点可以用Python中的任何名称来定义。

  尽管Python不要求将函数命名为main(),但最佳实践是将入口点函数命名为main()。这使得其他程序员更容易定位程序的起始点。

  此外,main()函数应该包含Python解释器执行文件时要运行的任何代码。这比将代码放在条件块中要好,因为用户可以在导入模块时重用main()函数。

  修改best_practices.py文件,如下所示:

  在这个例子中,定义了一个main()函数,它包含上面的条件语句块。然后修改条件块来执行main()。如果您将此代码作为脚本运行或导入,您将获得与上一节相同的输出。

  在main()中调用其他函数

  另一种常见的实现是调用main()中的其他函数,而不是将代码直接写入main()。这样做的好处是可以实现几个独立子任务的集成。

  例如,脚本具有以下功能:

  从数据库、文件、硬盘或web API等数据源读取数据。

  处理数据。

  将处理后的数据写入另一个位置。

  如果这些子任务在单独的功能中实现,您(或其他用户)可以很容易地实现代码重用。之后,您可以在main()函数中创建一个默认的工作流。

  可以根据自身情况选择是否使用该方案。将一个任务拆分成多个功能会使重用变得更容易,但是会使其他人更难理解代码。

  修改best_practices.py文件,如下所示:

  在这个示例代码中,文件的前10行与之前的内容相同。第12行中的第二个函数创建并返回一些样本数据,第17行中的第三个函数模拟将修改后的数据写入数据库。

  第21行定义了main()函数。在这个例子中,main()被修改,它将调用数据读取、数据处理和数据写入的函数。

  首先,从read_data_from_web()创建数据。将数据作为参数传入process_data(),之后将返回modified_data。最后,将修改后的数据传递给write_data_to_database()。

  脚本的最后两行是用于验证__name__的条件块,如果if语句为真,则执行main()。

  在命令行上运行它,如下所示:

  根据执行结果,Python解释器在执行main()函数时,会依次执行read_data_from_web(),process_data()和write_data_to_database()。当然,您也可以导入best_practices.py文件并重用process_data()作为不同的数据输入源,如下所示:

  在本例中,导入了best_practices,缩写为bp。

  导入过程将导致Python解释器执行best_practices.py的所有代码,因此输出显示了解释文件用途的信息。

  然后,存储文件中的数据,而不是从Web上读取数据。之后,您可以在best_practices.py文件中重用process_data()和write_data_to_database()函数。在这种情况下,可以使用代码重写,而不是实现main()函数中的所有代码逻辑。

  实践总结

  以下是Python中main()函数的四个关键最佳实践:

  将计算时间过长或对计算机有其他影响的代码编写成函数或类,这样可以精确控制代码的运行时间。

  使用不同的__name__值来确定上下文,并使用条件语句来更改代码的行为。

  将入口点函数命名为main(),以传达该函数的意图,尽管Python并没有给名为main()的函数赋予特殊的含义。

  如果要重用代码,请在main()之外定义函数,在main()中调用。

  结论

  恭喜你!现在您知道了如何创建Python main()函数。

  本文介绍了以下内容:

  理解__name__变量的值对于编写具有可执行脚本和导入模块双重用途的代码的重要性。

  __name__具有不同的值,具体取决于Python文件的执行方式。__name__的值如下:

  从命令行执行文件或使用python -m (__main__)时,该值为“__main__”。包的py文件)。

  如果作为模块导入,则该值是模块的名称。

  Python程序员为开发可重用代码提供了一个很好的解决方案。

  现在,您可以开始编写一些关于Python main()函数的伟大代码了!

  更多python学习教程加群:857662006免费,群内有一群志同道合的朋友,Python资料,电子书。

  英语原文:https://realpython.com/python-main-function/

  译者:我是昵称~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: