Python Tips: スクリプトとして実行されたときにだけ特定の処理を走らせたい

Python コードを格納したファイルが直接実行されたときにだけ特定の処理を走らせる方法についてご紹介します。

コードを書いていると、特定の処理について「ファイルが他のファイルから import されたときには実行せず python コマンドで直接実行されたときだけ実行したい」というときがあります。そんなときには __name__ の値を見て分岐させるとよいです。

...

if __name__ == "__main__":
    # 直接実行されたときにだけ走らせたい処理

__name__ は組み込みの変数でファイルがどのように読み込まれたかによって異なる値を格納しています:

  • python コマンドで直接実行されたとき: "__main__"
  • 他のコードからモジュールとして import されたとき: ファイル名

ですので、 if __name__ == "__main__": ブロックの中のコードはそのファイルが直接実行されたときだけ走ることになります。

参考