【Python】if __name__ == ‘__main__’:の意味と使い方を簡単に紹介

Python

Pythonを勉強していると、「if __name__ == ‘__main__’:」というコードに出会うことがあります。

一見すると、C言語などのmain関数と同じ役割のコードに思えますが、そもそもPythonにはmain関数が不要ということもあり、役割が大きく異なります。

そこで今回は、「if __name__ == ‘__main__’:」の意味と使い方を簡単に紹介します。

スポンサーリンク

 「__name__」とは?

まずは、「__name__」について簡単に説明します。

「__name__」とは、モジュールをimportしたときに、モジュール名が代入される変数のことです。

次のサンプルプログラムをみてください。

◆サンプルプログラム:

import random

print(random.__name__)

◆実行結果:

random

randomモジュールをインポートして、「random.__name__」変数に格納されている値を出力すると、’random’という文字列が格納されていることがわかりますよね。

※importについて詳しく知りたい方は、以下の記事を参考にしてください。

【Python】モジュール、パッケージ、ライブラリの意味とimportの使い方を紹介
Pythonを使い始めると、モジュールとか、パッケージとか、ライブラリとか似たような言葉が多数登場します。 そして、これらライブラリを使うには「import」をする必要があるのですが、imoprtがどのような役割を果たしているのか、よ...

ただし、「__name__」そのものを使う場合は、作成したPythonプログラムをファイルとして保存し(例えば「test.py」)、スクリプトとして実行した場合(例えば「python test.py」として実行した場合)にのみ、「__name__」に「’__main__’」という文字列が格納されます。

スポンサーリンク

「’__main__’」とは?

つまり、「if __name__ == ‘__main__’」は、このプログラムがスクリプトとして実行されたかどうかを判定するコードなんですよね。

次のサンプルプログラムをみてください。

◆サンプルプログラム:

import random

print(random.__name__)

if __name__ == '__main__':
    print('main')

◆実行結果:

random
main

スクリプトとして実行したので、print(‘main’)処理が実行されました。

また、今回のサンプルプログラムをみてわかるように、「if __name__ == ‘__main__’」は、C言語のmain関数のように優先的に実行されるわけではありません。単純な「if文」の処理だからです。

※if文について詳しく知りたい方は、以下の記事を参考にしてください。

【Python】if文を使った条件分岐の基本を簡単に紹介
Pythonで条件分岐をする場合、「if文」を使うことになりますが、初心者の方には少し複雑に思えるかもしれません。 そこで今回は、初心者の方にもわかるように、Pythonでのif文の使い方を簡単に紹介します。 if文の基本的な使...
スポンサーリンク

「if __name__ == ‘__main__’:」の使い方

では、いつ「if __name__ == ‘__main__’:」を使えばいいのでしょうか。

基本的には、スクリプトとして実行したときにだけ、デバッグしたいコードを書きます。

次のサンプルプログラムをみてください。

◆main_test1:

import random

def test_print():
    print("Hello World")

print(random.__name__)

if __name__ == '__main__':
    print('main')

◆main_test2:

import main_test1

main_test.test_print()

◆実行結果(main_test1.py):

random
main

◆実行結果(main_test2.py):

random
Hello World

main_test1.pyを実行したときは、「if __name__ == ‘__main__’:」の下にある処理「print(‘main’)」が実行されていますが、main_test2.pyからモジュールとしてimportしたときは、実行されていませんよね。

このように、スクリプトとして実行したときにだけ、実行したいコードを「if __name__ == ‘__main__’:」の下に書きます。

スポンサーリンク

まとめ

今回は、Pythonの「if __name__ == ‘__main__’:」の意味と使い方を簡単に紹介してきました。

主にデバッグ用途として使われる機能ですが、必要になることもあると思うので、ぜひ習得してください。

コメント

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