首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python里“__main__”是干啥的?

Python里“__main__”是干啥的?

作者头像
偶尔敲代码
发布2023-09-24 08:49:30
发布2023-09-24 08:49:30
1.8K00
代码可运行
举报
文章被收录于专栏:偶尔敲代码偶尔敲代码
运行总次数:0
代码可运行

打开PyCharm或者别人的代码,经常会看到一行:

所以这行代码是干啥用的?好像不用这行也能运行?

虽然这是个很基础的问题,但因此它常常被忽略,就比如我自己以前也是着急上手py,直到今天才认识它。

__ name__ == '__ main__'是Python的main函数入口,但并不是有这行代码才能运行,这里只是可以判断代码是否被直接执行还是被调用执行。

气氛都烘托到这里了,动手写几行代码验证一下!

新建个main.py文件,代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
def print_hi(name):
    print(f'Hi, {name}')

print_hi('偶尔敲代码')

if __name__ == '__main__':
    print_hi('Python')

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Hi, 偶尔敲代码
Hi, Python

可见__main__里的代码被执行了。

另外建个test.py文件,代码如下:

将上面的main.py作为模块导入。

代码语言:javascript
代码运行次数:0
运行
复制
import main

main.print_hi('测试啊啊啊')

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Hi, 偶尔敲代码
Hi, 测试啊啊啊

可见__main__里的代码没被执行(没打印Hi, Python)。

所以我理解它主要用途在调试代码。在"if __name__ == '__main__'"中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码又能够正常运行,这就比较方便了。这有点像易语言里的临时子程序:

用py至今,我一直都没用上这行代码,主要的原因有:

  1. 写的东西太水太零散,不需要多文件
  2. 代码通用性差,不方便调用
  3. 基础不扎实,压根就不懂
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-22 17:57,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 偶尔敲代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档