if __name__ == '__main__'的含义

《if __name__ == '__main__'的含义》

__name__指示模块如何被加载

通常一个程序本身能够运行,但也可能需要导入另一个程序中的某个模块的功能。在这两种情况下,出现一个问题“Python在运行时如何检测该模块是被导入的还是被直接执行的呢?”

于是在主程序中加入if __name__ == ‘__main__’判断。

  • 如果模块是被导入的,__name__的值就是模块的名字。
  • 如果模块是被直接执行的,__name__的值为’__main__’。

说的更加直白点就是,如果你想在当前代码中运行整个脚本,那么__name__的值为’__main__’,因此if判断为True,执行if下面的代码块。如果你在另一个脚本中仅仅是想调用当前代码中的某个函数或类,那么当前代码中的__name__的值就变成了你在另一个脚本中import的模块名,此时if判断为False,自然就不会执行当前代码中if __name__ == ‘__main__’后面的语句了。

点赞