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

发布时间:2021-12-17 17:43:06 作者:iii
来源:亿速云 阅读:204

这篇文章主要讲解了“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'有什么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. JS中的0、null、undefined、[]、{}、''''''''和false之间的关系
  2. jQuery中 is(':visible')怎么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:SQLite添加列的限制有哪些

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》