Python中的if __name__ == __main__是什么


本文小编为大家详细介绍“Python中的if__name__==__main__是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的if__name__==__main__是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在Python相关代码中,我们经常会遇到如下代码段:请注意,上述代码中namemain前后有2个下划线字符。当我们正常运行我们的Python脚本时,该脚本中的变量__name__的值一般为__main__。我们来看个示例:我们在终端中运行上述脚本,代码如下:输出如下:__main__观察上述输出,当我们运行脚本first.py的时候,变量__name__的值被设置为__main__。上述示例相对简单,也相对容易理解。接着我们来举个具有多个文件的例子,这里假设我们有三个脚本,分别为a.py,b.py以及c.py。其中,a.py的内容如下:此时,b.py的内容如下:c.py的内容如下:如果我们运行命令python a.py得到结果如下:__name__ in a.py: __main__
__name__ in b.py: b
__name__ in c.py: c注意在脚本a.py中我们看到__name__的值为__main__,此时在脚本b.py__name__的值为b, 同时 c.py__name__的值为c。这是因为我们运行的脚本为a.py,那么该脚本即a.py中变量__name__的值将会被设置为字符串__main__.此外,脚本b.pyc.py中的变量__name__分别保持为bc,这是因为脚本b.pyc.py不是直接运行的脚本。而是我们运行的脚本a.py调用了b.pyc.py中的print函数。如果我们单独运行python b.py得到结果如下:__name__ in b.py: __main__相应的我们运行python c.py,得到结果如下:__name__ in c.py: __main__观察上述两个输出,当我们直接运行脚本b.pyc.py,相应的脚本里的变量__name__都将被设置为__main__。作为Python开发者,我们通常会在一个项目工程中创建多个Python文件而不是将所有代码都写在一个Python文件中。因此我们通常会有一个主的Python文件用来作为项目工程的入口,同时其他文件包含一些辅助性的函数实现。我们来看个示例,这里假设我们有两个Python文件,如下:辅助函数实现 helper.py内容如下:如果此时我们运行命令 python main.py,得到结果如下:hello bob
hello testname主要上述的import语句将从helper.py中引入所有的语句免费云主机域名,所以helper.py中的测试语句print(greet("testname"))也将被执行。虽然我们可以通过添加注释或者屏蔽注释来达到运行main.pyhelper.py来控制该测试语句的输出,但是这种情形就是语句
if __name__=="__main__" 大显身手的情形。我们针对上述情形,进行代码整改,如下:我们修改文件 helper.py内容如下:此时,我们执行命令python main.py,得到结果如下:hello bob注意,此时helper.py 中的变量 __name__的值为helper, 所以helper.py中的if语句不成立,进而将不会执行我们的测试语句print(greet("testname")).此时,如果我们单独运行命令python helper.py ,得到结果如下:hello testname单独运行helper.py时,此时改脚本中的变量__name__将被设置为__main__,所以此时的测试语句将会被执行,输出相应的测试结果。读到这里,这篇“Python中的if__name__==__main__是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: go语言有没有反射

这篇文章主要讲解了“go语言有没有反射”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“go语言有没有反射”吧! go语言有反射。Go语言提供了一种机制在运行时更新和检查变量的值、调用变量的方法和变量支持的内在操作…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/26 18:58
Next 02/26 18:58

相关推荐