__name__是python的一个内置属性,保存着一个字符串。
如果所在模块被其他文件导入,__name__保存的是模块名;
如果所在模块直接执行,__name__保存的是__main__。
主要应用场景为:
在开发一个模块时,对模块进行测试,需要再模块中加入一段测试代码,用于验证模块功能。当其他文件导入这个模块时,则不需要这段测试代码被执行。
举例说明:
模块01.py代码如下:
def say_hello():
print("say hello")
print(__name__)#测试代码
say_hello()#测试代码
执行的结果是:
__main__
say hello
主程序.py代码如下:
import 模块01
print(“hello”)
执行的结果是:
主程序
say hello
hello
如果在主程序调用模块时不想执行测试代码,则可将模块改造如下:
def say_hello():
print("say hello")
if __name__ == “__main__”
print(__name__)#测试代码
say_hello()#测试代码