if __name__ == ‘__main__‘: 的作用

一、介绍

(一)作用

  1. 对于大多数的编程语言来说都有一个入口函数,如:Java、C#都有一个包含main()的主类,并作为入口函数,但是python不一样,python是从脚本的第一行开始执行,没有统一的入口
  2. 一个python文件有两种使用方法,一种是作为脚本运行;另外一个是作为模块,使用import语句被调用到其他的py文件中。
    所以if __name__ == '__main__': 的作用就是:控制这两种情况执行代码的过程。
  3. (1).py文件作为脚本运行时,if __name__ == '__main__': 中的代码被执行
    (2).py文件是被import语句调用到其他.py文件中时,if __name__ == '__main__': 中的代码不会被执行。

(二)原理

  1. if __name__ == '__main__': 中的__main__是一个记录模块名称的变量,当程序作为脚本文件运行时,__main__的值就是'__main__',如果当前文件作为模块导入到其他文件当中,则返回的值是该模块的文件名称。

二、举例说明

(一)作用说明

  1. 目录结构:名为“py测试”的文件夹下,两个同级目录py文件:
|--py测试
	|--add1.py
	|--main.py
  1. 作为脚本文件

(1)add1.py文件中的code如下:

print ('做加法运算')

if __name__ == '__main__':
    print('PyCharm')

(2)运行当前文件,即add.py文件此时作为脚本文件),输出结果如下:有两行输出

做加法运算
PyCharm

输出了第一个print中的字符串,同时,也输出了if __name__ == '__main__':中的print里的内容。即:if __name__ == '__main__': 中的代码被执行

  1. 作为被调用模块

(1)main.py文件中的code(就一行code)如下:

import add1   # 调用add1

(2)运行当前文件,即main.py文件此时的代码中的add1是作为了调用模块,所以add1.py文件中的if __name__ == '__main__':中的代码不会被执行,所以第二个print不会输出。
(3)运行结果如下:只有一行输出

做加法运算

(二) 原理说明

(1)add1.py文件中的代码如下:

print ('做加法运算')
print('__name__的值为:', __name__)

if __name__ == '__main__':
    print('PyCharm')
   

(2)运行当前add1.py文件,输出结果发现'__name__'的值就为'__main__',如下图:

在这里插入图片描述

(3)main.py文件中调用add1模块,main.py文件的代码如下:

import add1

(4)运行当前main.py文件,输出结果发现'__name__'的值变了,为调用的模块名称'add1',所以不会执行add1.py文件中if __name__ == '__main__': 后面的代码,即:不会输出’Pycharm’如下图:

在这里插入图片描述

三、参考链接

link

猜你喜欢

转载自blog.csdn.net/m0_45521766/article/details/127252972