Python中if name==‘main’:
python文件通常有两种用法:一种是以脚本直接运行,另一种是被import到另一python文件调用执行。
- if name==‘main’:的作用:控制这两种情况执行代码的过程,在该句之后的代码只有在第一种情况下才会被执行,而第二种情况不会被执行。
例子:创建第一个python文件datatype.py,代码如下:
print('在主程序之前')
print('__name__', __name__)
if __name__=="__main__":
input ='I like runoob'
print(input)
第一种情况直接运行结果:
在主程序之前
--main-- __main__
I like runoob
Process finished with exit code 0
第二种情况import到另一文件中:
import datatype
结果:
在主程序之前
__name__ datatype
Process finished with exit code 0
其结果如上述分析,第一种情况直接执行,if name’main’:前后语句均执行;第二种情况import至另一文件中,只执行了
if name’main’:前面的代码。
2. if name=='main’原理:
每个python均是一个模块,都有一个内置的__name__变量,当该模块被直接执行时,__name__等于文件名(包含后缀.py);如果该模块import到其他模块,其__name__等于模块名称(不包括后缀.py)。
而“main”始终指向当前执行模块的名称(包括后缀.py),进而当模块被直接执行时,name=‘main’结果为真。
进一步说明,我们在datatype.py文件之前加入print(name),将__name__打印出来。
参考:https://blog.csdn.net/heqiang525/article/details/89879056