学过C、C++或者Fortran语言的朋友应该都知道,每个程序都必须写一个主函数作为程序的入口,也就是我们常说的main函数。那么Python作为一种解释型脚本语言,程序运行时是从模块顶行开始,所有的代码都按照逻辑顺序执行,所以Python中并不需要一个统一的main()函数作为程序的入口。
因此,在Python中为了控制程序执行的入口,通常使用“if name==’main:”作为一个Python脚本的主函数标志,在作为模块导入时告诉其他程序脚本,代码入口在这里——这就是“if name==’main:”的意义所在。
也就是说,一个python文件,如果作为脚本直接执行,脚本里的代码包括 if name == 'main': 下的代码都会被执行;而 import 到其他的 python 脚本中被调用时, if name == 'main'之后的代码会被忽略。
举例说明如下:
脚本1:testmain.py
# -*- coding: UTF-8 -*-
print("This is the first line!")
if __name__ == "__main__":
print("This is the second line!")
print(__name__)
执行的结果
This is the first line!
This is the second line!
main
脚本2:testimport.py
import testmain
print(testmain.__name__)
执行的结果
This is the first line!
testmain