1、__name__的理解
Python解释器在导入模块时,会将模块中没有缩进的代码全部顺序执行一遍(模块就是一个独立的Python文件)。开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利用__name__属性(即若在一个模块中仅满足__name__=__main__才执行的代码部分,在该模块被导入时,此部分不会被执行)
__name__属性是Python的一个内置属性,记录了一个字符串。若是在当前文件,__name__ 是__main__
2、具体应用
模块A:
print("模块A中语句之外的部分")
if __name__ == "main":print("模块A中语句之内的部分")
模块B:
import testA
print("模块B中的输出部分")
执行模块的输出结果为
模块A中语句之外的部分
模块B中的输出部分
输出结果解释:
模块A中的 if __name__ == "main": print("模块A中语句之内的部分") 表明仅在__name__="main"时执行内部语句,但是模块A中的name仅在模块A中运行时才为main,因此在模块B中导入模块A的时候,此语句并不成立。