这篇文章主要讲解了“Python中py文件里的name == 'main'有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中py文件里的name == 'main'有什么用”吧!
py 文件里的name == 'main'到底干啥的?
在查看 Python 代码的时候,我们经常在代码中看见这样一句if __name__ == "__main__":
,到底是干啥的呢?不写行不行?写了有什么好处?
默认情况下,Python 代码是从上到下,一行一行被解释器执行的。当然,定义一个函数,没有调用时,内部代码是执行不到的。之后,我们执行任意一个 Python 文件,会从上往下执行你写好的每一个函数,就是 print,a(), x.y()等等.
if __name__ == "__main__":
这句代码,最关键的是这个地方:__name__
到底等于啥?
双下划线包裹的变量,一般为 Python 内置变量,也是个全局变量,Python 内部会自己处理。我们这里用两个等于判断是否等于双下划线的 main,其实就能猜到这个 name 是有时候等于 有时候不等于 main 的(DE8UG 注:双下划线不好写,我这几个单词地方省略咯)。
什么时候等于呢?Python 规定的是,当调用当前 Python 脚本的时候。比如有个 a.py, 当用python a.py
调用的时候,name 就会赋值为 main,这时候 if 判断成立,也就执行这以后的代码了。其他没被直接调用的模块,也就等于那个模块自己的名字,其实就是那个 py 文件的名字。
综上,我是建议大家每一个 python 文件里都写上这一段的。把当前 py 文件里面,需要测试的代码,以及我们想直接执行的代码,都写到这句判断的后面。这样,既可以直接测试这个文件的代码,而且其他地方调用这个文件的时候,也不会错误的执行不需要的代码了。
举个例子:
# a.py
print('a.py')
print('a模块名称:', __name__)
# b.py
print('b.py')
print(__name__)
print('导入a')
import a
print('导入a结束')
if __name__ == "__main__":
print('运行这个python文件,才会显示')
我们分别执行两个文件,查看效果:
✗ python a.py
a.py
a模块名称:__main__
✗ python b.py
b.py
__main__
导入a
a.py
a模块名称:a
导入a结束
运行这个python文件,才会显示
小作业:把 a 里面也加上那一句 if 的判断,写一些代码,然后查看两个文件的执行结果。
感谢各位的阅读,以上就是“Python中py文件里的name == 'main'有什么用”的内容了,经过本文的学习后,相信大家对Python中py文件里的name == 'main'有什么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/219855.html