不开玩笑?学Python,真不知道main函数! |
您所在的位置:网站首页 › python答题网站 › 不开玩笑?学Python,真不知道main函数! |
print( "Hello, World!") if__name__== "__main__": main main 函数对于 Python 来说是必须的吗 在 Python 中拥有 main 函数并不是强制性的,但是,在上面的示例中,我们可以看到,定义了一个名为 main 的函数,下面是一个条件 if 语句,它检查 __name__ 的值,并将其与字符串 __main__ 进行比较,当为 True 时,就会执行 main 。 在执行时,会打印“Hello, World!”。 当我们处理要作为 Python 脚本执行或要在其他模块中导入的文件时,这种代码模式是非常常见的。 让我们详细来看一下这段代码是如何执行的,首先我们非常有必要了解 Python 解释器设置 __name__ 取决于代码的执行方式。那么,让我们了解一下 Python 中的执行模式 Python 执行模式 有两种主要方法可以告诉 Python 解释器执行代码: 最常见的方法是将文件作为 Python 脚本执行 通过将必要的代码从一个 Python 文件导入到另一个文件 最常见的方法是将文件作为 Python 脚本执行 通过将必要的代码从一个 Python 文件导入到另一个文件 无论我们选择哪种执行模式,Python 都会定义一个名为 __name__ 的特殊变量,其中包含一个字符串。正如我们前面所看到的,这个字符串的值取决于代码的执行方式。 有时当我们从模块导入时,我们想知道特定模块的函数是否被用作导入,或者只是使用该模块的原始 .py(Python 脚本)文件。 为了解决这个问题,Python 有一个特殊的内置变量,称为 __name__ ,可以根据运行或执行脚本的方式,此变量会被分配字符串 __main__ 。 Python 中的 __main__ 是什么 Python main 函数是任何 Python 程序的入口。当我们运行程序时,解释器按顺序运行代码,如果作为模块导入,则不会运行 main 函数, main 函数只有在作为 Python 程序运行时才会执行。 因此如果我们直接运行脚本,Python 会将 __main__ 分配给 __name__ ,即 __name__=“__main__” 。 因此,如果条件语句的计算结果为 True,则意味着 .py(Python 脚本)文件正在直接运行或执行。 有一点需要重点注意,如果我们直接在 Python shell 或终端上运行某些东西,则默认情况下,此条件语句恰好为 True。 最终我们习惯性的把所有必要的函数定义都写在了代码文件的最上面,最后在文件的最后写了这条语句,来组织代码。 if__name__ == "__main__": Logic Statements 简而言之, __name__ 变量可以帮助我们检查文件是直接运行还是已导入。 在编写具有 main 功能的程序时,我们需要记住如下一些事情 尽可能使用函数和类 长期以来,我们一直在学习面向对象编程的概念及其优势,所以绝对有必要将批量逻辑代码放在紧凑的函数或类中。通过这种方式,我们可以控制代码的执行,而不是让 Python 解释器一导入模块就执行它。 让我们看看下面的一段代码: defget_got: print( "…Fetching GOT Data… n") data= "Bran Stark wins the Iron Throne. n" print( "…GOT Data has been fetched…n") returndata print( "n Demo: Using Functions n") got=get_got print(got) 在上面的示例中,我定义了一个名为 get_got 的函数,它返回存储在变量 data 中的字符串。然后将其存储在名为 got 的变量中,最后打印该变量。 输出如下: 使用 __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") defdemo(got): print( "…Beginning Game Of Thrones…n") new_got = str.split(got) print( "…Game of Thrones has finished…n") returnnew_got defmain: 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 。 来看一下输出: ❝可以尝试一下,如果将此代码作为脚本运行或导入它,则输出将是相同的 可以尝试一下,如果将此代码作为脚本运行或导入它,则输出将是相同的 当我们编写成熟的 Python 程序时,可能有许多可以调用和使用的函数。通常情况下,一些函数应该在程序开始执行时立即调用。因此,从 main 本身调用其他函数就是最佳的选择了。 让我们看看下面的代码片段: print( "n Main Function Demo n") defdemo(got): print( "…Beginning Game Of Thrones Demo1…n") new_got = str.split(got) print( "…Game of Thrones has finished…n") returnnew_got defgetgot: print( "…Getting GOT Data…n") got= "Bran Stark wins the Iron Throne n" print( "…GOT Data has been returned…n") returngot defmain: got= getgot print(got) new_got = demo(got) print(new_got) if__name__ == "__main__": main 在上面的示例中,我们定义了一个名为 getgot 的函数来获取数据,这个函数是从 main 本身调用的。 因此,从 main 中调用其他函数以将整个任务从可以独立执行的较小子任务中组合起来总是较好的选择。 输出如下: 希望通过这篇文章,对于 Python 中 main 函数的全部内容以及如何使用它有一个全面而正确的理解。借助 Python 中的 main 函数,我们可以在需要时执行大量功能,还可以控制执行流程。 好了,这就是今天分享的全部内容,喜欢就点个 赞吧~ 入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python |实战项目 | 学Python就是这条捷径 干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 | 用Python做个海量小姐姐素描图 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影 趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏! AI:会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影 小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf! |再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐! | 年度爆款文案返回搜狐,查看更多 1). 卧槽!Pdf转Word用Python轻松搞定 ! 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4). 80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6). 30个Python奇淫技巧集 7). 我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8). 再见Python!我要学Go了!2500字深度分析 ! 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |