【Python】if __name__ == ‘__main__’:の意味と使用方法

みなさんこんにちは、ZeroTerasu(@ZeroTerasu)です。

結論から申し上げると、__name__は、①Pythonモジュールとして実行される時 と ②Pythonモジュールとして読み込まれる時 でその挙動が変化することを利用して、①の時のみファイルが実行されるようにする仕組みを作るために利用されます。

test.pyというPythonモジュールを下記のように定義します。

# test.py
print(__name__)

このPythonモジュールを上述の①と②の2パターンでそれぞれどのような挙動をするか確認します。

①test.pyをPythonモジュールとして実行した場合
python3 test.py

# 実行結果
__main__
②test.pyをPythonモジュールとして読み込んだ場合
import test.py

# 実行結果
test

上記の通り、①Pythonモジュールとして実行した場合、__name__は”__main__“として返されます。②Pythonモジュールとして読み込まれた場合、__name__は”モジュール名“として返されます。

これらのことから、if __name__ == “__main__”: とした場合、スクリプトとして実行されたときにだけファイルが実行されるための仕組みであることがご理解頂けるかと思います。

コメント

タイトルとURLをコピーしました