Python里“__main__”是干啥的?

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

6527e29e01c849cba4b0e6d056ef3784.png

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

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

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

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

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

def print_hi(name):
    print(f'Hi, {name}')


print_hi('偶尔敲代码')


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

运行结果:

Hi, 偶尔敲代码
Hi, Python

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

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

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

import main


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

运行结果:

Hi, 偶尔敲代码
Hi, 测试啊啊啊

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

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

Python里“__main__”是干啥的?_第1张图片

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

  1. 写的东西太水太零散,不需要多文件

  2. 代码通用性差,不方便调用

  3. 基础不扎实,压根就不懂

- End -

更多精彩文章

点击下方名片关注【偶尔敲代码】

Python里“__main__”是干啥的?_第2张图片

你可能感兴趣的:(python,开发语言)