DEV

Python3 - if __name__ == '__main__':

参考: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