【Python】 if __name__ == ‘__main__’: の意味・使い方

Pythonのif name == ‘main‘: の意味や使い方などについて紹介します。

if __name__ == "__main__": とは

if __name__ == "__main__": は、「スクリプトファイルが直接実行された場合のみ、その中の処理を実行する」 という意味です。モジュールとして他のファイルからインポートされた場合には、その部分は実行されません。

__name__ 変数とは

Pythonスクリプトを読み込むとき、自動的に __name__ という特殊変数 が作られます。その値は「実行中のモジュール名」になります。スクリプトを直接実行した場合、そのファイルは "__main__" モジュール として扱われ、__name__"__main__" が代入されます。逆に、他のファイルから import された場合は、そのファイル名(モジュール名)が __name__ に入ります。

サンプルコード

■例:pikori.py

def adventure():
    print("勇者ぴこりは冒険の旅に出た!")

def rest():
    print("勇者ぴこりは村で休んでいる…")

# 直接実行されたときだけ冒険を開始する
if __name__ == "__main__":
    adventure()

■直接実行した場合

勇者ぴこりは冒険の旅に出た!

name に “main” が入ります。そして、if文の条件が真になり、adventure() が実行されます。

モジュールとしてインポートした場合

import pikori

pikori.rest()
勇者ぴこりは村で休んでいる…

__name__"pikori" が入り、if文の条件は偽になります。そのため、adventure() は自動実行されません(待機状態)。

使いどころ

  • 自作モジュールの動作確認
    → モジュールとしてインポートされたときは実行されず、直接実行したときだけテストコードが走る。
  • エントリーポイントの明示
    → 大規模プロジェクトで「ここから実行が始まる」と分かりやすくする。

関連ページ(もっと学びたい人へ)

Pythonの基礎から応用例まで、以下ページから学ぶことができます。

【Python超入門】基礎から応用例まで幅広く解説
PythonについてPythonは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されているプログラミング言語です。他のプログラミング言語と比較して「コードが短くて読みやすい、書きやすい」「ライブラリが豊...
この記事を書いた人
西住技研

プログラミング言語「Python」を研究、仕事、趣味でデータ分析や作業自動化などに活用してきたノウハウを情報発信しています。
筆者の詳しいプロフィールやお問合せはこちらのページまで。
YoutubeX(旧Twitter)でも情報発信中です!

西住技研をフォローする
Python基礎

コメント