Python特殊属性:__name__

__name__是模块对象的特殊属性,模块文件在直接执行的时候等于”__main__”,而在被导入的时候则为模块的名称。所以一般可以在模块中将单元测试代码放在下面的if语句块中。

if __name__ == "__main__":
    code block

正常来说模块文件都不是直接执行,而是通过模块导入名称空间的方式调用模块中具体变量,函数以及类从而达到使用模块的目的,也就是说上面的代码块在导入模块的时候将不起作用,只有在直接执行的时候才会运行,所以常用来作为单个模块单元测试使用。

在导入模块的时候__name__将会作为key的方式存储在sys.modules字典中。