Python中py文件里的name == 'main'有什么用

这篇文章主要讲解了“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

(0)
上一篇 2022年1月2日
下一篇 2022年1月2日

相关推荐

发表回复

登录后才能评论