面向对象一文搞定,终生难忘(面向对象心得)
829
2022-05-30
Python是最流行的编程语言之一。Python中的主要功能是任何程序的执行点。在Python编程中定义主要功能是启动程序执行的必要条件,因为只有在直接运行程序时才开始执行程序,而作为模块导入时则不执行。
要了解有关python main函数的更多信息,让我们看一下我将在本文中介绍的主题:
什么是Python函数?
Python中的主要功能是什么
基本的Python main()
Python执行模式
让我们开始吧。
什么是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”的变量中,然后将其打印出来。我写下了下面的输出:
使用__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__变量来控制代码的执行。您可以参考下面显示的输出:
创建一个函数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()中。我已经吸收了代码的输出,并在下面写下来,以方便您参考:
注意:如果将此代码作为脚本运行或导入,则输出将相同。您可能会看到以下输出:
从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()内调用其他函数来由较小的子任务组成整个任务,这些子任务可以独立执行。我还在下面的部分中共享了上述代码的输出:
我希望您能够阅读本文并对Python中main()函数的意义以及如何使用它有一个公平的了解。借助Python中的main()函数,我们可以在需要时执行大量功能,还可以控制执行流程。
软件开发 IoT 云计算 机器学习 Python
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。