关于python测试函数中的语法问题

测试函数中这两句该如何理解?
书上说的是检查特殊变量__name__如果这个文件作为主程序执行,变量__name__将被设置为'main'
有点不理解
img

在单元测试时,有两个文件,一个是源文件,一个是测试文件,测试文件到将源文件导入,然后对其测试,
这种情况下,不希望源文件的程序马上执行,而是在测试用例中按需调用
这意味着,源程序需要有两种执行模型:

  • 执行执行
  • 被其他文件导入,执行

__name__ 是特殊变量,会根据执行的情况动态发送变化:

  • 如果本文件是被作为脚本执行时,值为__main__
  • 如果本文件是被作为模块导入时,值为本文件的模块名

反过来说,如果__name_ == "__main__"为真时,说明是被作为脚本执行的, 就执行if 下面的那行代码,
反之,这可能被其他模块导入(比如测试),那就不执行

主程序执行,就是在这个文件里面执行这些代码。
而不是在其他文件里,通过导包调用这些代码执行。
main 判断,只在当前文件为主程序时生效
例 test.py 中Main判断下的代码只在test.py中有效,其他文件调用test.py的方法时,不生效。