从零开始学Python|主要功能是什么以及如何使用它?

举报
Yuchuan 发表于 2020/12/26 14:04:48 2020/12/26
【摘要】 Python中的主要功能__name__与__main__

Python是最流行的编程语言之一。Python中的主要功能是任何程序的执行点。在Python编程中定义主要功能是启动程序执行的必要条件,因为只有在直接运行程序时才开始执行程序,而作为模块导入时则不执行。

要了解有关python main函数的更多信息,让我们看一下我将在本文中介绍的主题:

让我们开始吧。

什么是Python函数?

函数是可重用的代码块,它们构成了以编程语言执行动作的基础。它们被利用来对输入数据执行计算,并将输出呈现给最终用户。

我们已经了解到,函数是一段为执行特定任务而编写的代码。Python中有三种类型的函数,即内置函数,用户定义函数和匿名函数。现在,主要功能就像Python中的其他任何功能一样。

因此,让我们了解Python中的主要功能到底是什么。

什么是Python中的主要功能

在大多数编程语言中,有一个特殊功能,每次运行程序时都会自动执行。这不过是通常表示的main函数或main()。它实质上是程序执行的起点。

Python中,不必在每次编写程序时都定义main函数。这是因为,除非定义了特定的函数,否则Python解释器将从文件的顶部执行。因此,有一个定义的Python程序执行起点可以更好地了解程序的工作原理。

基本的Python main()

在大多数Python程序/脚本中,您可能会看到一个函数定义,后跟一个条件语句,如下所示:

def main():
    print("Hello, World!")
    if __name__== "__main__" :
main()

Python是否需要Main函数?

在Python中拥有Main函数并不是强制性的,但是,在上面的示例中,您可以看到有一个名为“ main()”的函数。这之后是一个条件“ if”语句,该语句检查__name__的值,并将其与字符串“ __main__ ”进行比较。评估为True时,它将执行main()。

并在执行时打印“ Hello,World!”。

当您处理要作为Python脚本执行和/或导入其他模块的文件时,这种代码模式非常常见。

让我们了解这段代码是如何执行的。在此之前,非常有必要了解Python解释器根据代码的执行方式设置__name__。因此,让我们了解Python中的执行模式

Python执行模式

您可以通过两种主要方法来告诉Python解释器执行代码:

  • 最常见的方法是将文件作为Python脚本执行。
  • 通过将必要的代码从一个Python文件导入到另一个文件。

无论选择哪种执行方式,Python都会定义一个名为__name__的特殊变量,该变量包含一个字符串。正如我之前所说,此字符串的值取决于代码的执行方式。

有时,当您从模块导入时,您想知道某个特定模块的功能是否正在用作导入,或者您是否仅在使用该模块的原始.py(Python脚本)文件。

为了解决这个问题,Python有一个特殊的内置变量__name__。根据您运行或执行脚本的方式,为该变量分配字符串“ __main__ ”。

Python中的__main__是什么?

Python Main Function是任何Python程序的开始。当我们运行程序时,解释器将按顺序运行代码,并且如果作为模块导入,则解释器将不会运行主函数,但是仅当主函数作为Python程序运行时,主函数才会执行。

因此,如果直接运行脚本,Python将为__name__分配“ __main__ ” ,即__name__ =“ __main__”。(这发生在后台)。

结果,您最终将如下编写条件if语句:

if __name__ == "__main__" :
        Logic Statements

因此,如果条件语句的值为True,则意味着.py(Python脚本)文件正在直接运行或执行。

重要的是要理解,如果直接在Python Shell或终端上运行某些内容,则该条件语句默认情况下为True。

结果,程序员将所有必要的函数定义写在了最上面,最后在最后写了这个语句来组织代码。

简而言之,__ name__变量可帮助您检查文件是否正在直接运行或是否已导入。

在编写将具有主要功能的程序时,应牢记一些注意事项。我已通过四个简单步骤列出了它们。您可以将其视为编写其中包含主要功能的Python程序时要遵循的良好命名法。

  • 尽可能使用函数和类。

长期以来,我们一直在学习面向对象编程的概念及其优势。绝对有必要将批量逻辑代码放在紧凑的函数或类中。为什么?为了获得更好的代码可重用性,更好的理解以及整体代码优化。这样,您可以控制代码的执行,而不是让Python解释器在导入模块后立即执行它。

让我们看下面的代码:

def get_got():
print("…Fetching GOT Data… n")
data="Bran Stark wins the Iron Throne. n"
print("…GOT Data has been fetched…n")
return data
 
print("n Demo: Using Functions n")
got=get_got()
print(got)

在上面的示例中,我定义了一个名为“ get_got ”的函数,该函数返回存储在变量“ data”中的字符串。然后将其存储在称为“ got”的变量中,然后将其打印出来。我写下了下面的输出:

program2-了解Python 3-Edureka中的主要功能

  • 使用__name__来控制代码的执行。

现在您知道什么是__name__变量,如何使用以及为什么使用它。让我们看看下面的代码片段:

现在您知道什么是__name__变量,如何使用以及为什么使用它。让我们看看下面的代码片段:

if __name__ == "__main__":
            got = "Game of Thrones is a legendary shown"
            print(got)
            new_got = str.split(got)
            print(new_got)

在上面的示例中,条件if语句将比较变量__name__的值与字符串“ __main__ ”。当且仅当它的结果为True时,才执行下一组逻辑语句。由于我们直接运行程序,因此我们知道条件语句将为True。因此,执行语句,并获得所需的输出。这样,我们可以使用__name__变量来控制代码的执行。您可以参考下面显示的输出:

program6-了解python 3-Edureka中的主要功能

  • 创建一个函数main(),其中包含要运行的代码。

到目前为止,您已经知道如何执行Python代码的各种方式。您还知道为什么以及何时使用main()函数。现在是应用它的时候了。看下面的代码:

print("n Main Function Demo n")
    def demo(got):
        print("…Beginning Game Of Thrones…n")
        new_got = str.split(got)
        print("…Game of Thrones has finished…n")
        return new_got
    def main():
        got= "n Bran Stark wins the Iron Throne n"
        print(got)
        new_got = demo(got)
        print(new_got)
    if __name__ == "__main__":
        main()

在上面的示例中,我使用了main()的定义,其中包含我要运行的程序逻辑。我还定义了一个名为“ demo”的函数,其中包含一段代码,可以在必要时重复使用。此外,我还更改了条件块,以使其执行main()。

这样,我将要运行的代码放在main()中,将编程逻辑放在称为“ demo”的函数中,并将其放在条件块中的main()中。我已经吸收了代码的输出,并在下面写下来,以方便您参考:

program3-了解python 3-Edureka中的主要功能

注意:如果将此代码作为脚本运行或导入,则输出将相同。您可能会看到以下输出:

  • 从main()调用其他函数。

当您编写成熟的Python程序时,可能会有许多函数可以调用和使用。通常,程序执行开始后应立即调用某些功能。因此,从main()本身调用其他函数总是好的。

让我们看下面的代码片段:

print("n Main Function Demo n")
    def demo(got):
        print("…Beginning Game Of Thrones Demo1…n")
        new_got = str.split(got)
        print("…Game of Thrones has finished…n")
        return new_got
    def getgot():
        print("…Getting GOT Data…n")
        got="Bran Stark wins the Iron Throne n"
        print("…GOT Data has been returned…n")
        return got
    def main():
        got= getgot()
        print(got)
        new_got = demo(got)
        print(new_got)
    if __name__ == "__main__":
        main()

在上面的示例中,我定义了一个名为“ getgot() ”的函数来获取数据。并且此函数是从main()本身内部调用的。

因此,总是可以从main()内调用其他函数来由较小的子任务组成整个任务,这些子任务可以独立执行。我还在下面的部分中共享了上述代码的输出:

program5-了解Python 3-Edureka中的主要功能

我希望您能够阅读本文并对Python中main()函数的意义以及如何使用它有一个公平的了解。借助Python中的main()函数,我们可以在需要时执行大量功能,还可以控制执行流程。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。