Python的“__name__“属性
由于Python的解释性脚本语言本质,在执行之前会将所有代码先编译成中间代码,程序从模块顶行开始逐行翻译执行。所以Python中不需要一个统一的main()作为程序的入口,“if __name__==’__main__:”语句可以视为一个标志,类似Java等语言中的程序主入口,告诉其他程序员,代码入口在此。
因此需要对"__name__"属性进行了解,它是一个python的内部属性,记录了一个字符串。
如果在当前文件内,"__name__"属性值为"__main__"。
如果是导入的文件,"__name__"的属性值为对应的模块名,例如
import torch
print(torch.__name__)
显示的是torch模块的模块名
根据"__name__"属性的这个特点,"__name__ "== "__main__" 就表示在当前文件中,可以在if __name__ == '__main__':条件下写入测试代码,如此可以避免测试代码在模块被导入后执行。
当你要导入某个模块,但又不想改模块的部分代码被直接执行,那就可以这一部分代码放在“if __name__=='__main__':”内部