Python解释器在导入模块时,会将模块中没有缩进的代码全部执行一遍(模块就是一个独立的Python文件)。
开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利用__name__属性。
__name__属性
__name__属性是Python的一个内置属性,记录了一个字符串:
- 若是在当前文件,name 是__main__
eg:在hello文件中打印本文件的__name__属性值,显示的是__main__
- 若是导入的文件,__name__是模块名
eg:test文件导入hello模块,在test文件中打印出hello模块的__name__属性值,显示的是hello模块的模块名
if name == 'main':
因此__name__ == 'main' 就表示在当前文件中,可以在if name == 'main':条件下写入测试代码,如此可以避免测试代码在模块被导入后执行。