参考:Python - if name == 'main': の意味
コマンドラインからスクリプトファイルを指定してPythonインタプリタを起動すると、指定されたファイルは、__main__という名前のモジュールとしてPythonに読み込まれる。実行中スクリプトのモジュールの名前は、__name__という名前の変数に設定されているため、この値を参照して、ファイルがコマンドラインから実行されたのか、それともimport文でインポートされたのかを識別できる。
nameは、モジュール名で、コマンドラインから実行するとそのファイルのモジュール名は、mainになる。importすると、そのファイルのモジュール名は、hoge.pyだったらhogeになる。(importするときもimport hoge.pyじゃなくて、import hogeとする)
コードサンプル test.py
import test2 def hoge(): test2.hoge2() print(__name__) if __name__ == '__main__': hoge()
test2.py
def hoge2(): print(__name__)
実行
$ python test.py
結果
__main__ test2