Python里“__main__”是干啥的?

分手后的思念是犯贱 2024-03-01 07:50 103阅读 0赞

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

6527e29e01c849cba4b0e6d056ef3784.png

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

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

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

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

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

  1. def print_hi(name):
  2. print(f'Hi, {name}')
  3. print_hi('偶尔敲代码')
  4. if __name__ == '__main__':
  5. print_hi('Python')

运行结果:

  1. Hi, 偶尔敲代码
  2. Hi, Python

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

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

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

  1. import main
  2. main.print_hi('测试啊啊啊')

运行结果:

  1. Hi, 偶尔敲代码
  2. Hi, 测试啊啊啊

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

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

140ce47e21d3f86a41e0c7ea4f95d5b7.png

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

  1. 写的东西太水太零散,不需要多文件
  2. 代码通用性差,不方便调用
  3. 基础不扎实,压根就不懂

- End -

更多精彩文章

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

04113b43808a83572f52ecbd37830f4c.gif

发表评论

表情:
评论列表 (有 0 条评论,103人围观)

还没有评论,来说两句吧...

相关阅读

    相关 当程序员之前,你

    在“万物皆可跨界”的年代,跨界好像才是流行趋势:搜索引擎治疗疑难杂症,相声演员跨界唱歌,教育机构卖水果…… 要是只会做一件事情,简直都不好意思和别人打招呼。 在IT互联网界

    相关 META-INF目录

    平时写的web项目打包成jar文件之后会发现里面不知道为啥多出了一个叫做META-INF的目录,点开之后发现里面还出现了一个manifest.mf文件。出于好奇我在网上找了找这

    相关 python语言拿来

    最近这段时间使用Python比较多,简单描述一下相关的经验。 第三方库多 > 从我的经验出发,Python是一门第三方库特别多的语言,诚然,各个语言都有自己的第三方库,

    相关 关键字transient

    百度百科的解释:         Java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transie