Python

Python 「if __name__ == ‘__main__’:」の意味

More than 1 year has passed since last update.

モジュール

Pythonのコードはスクリプトファイルとして保存し、他のプログラムから再利用することができます。そのファイルのことをモジュールという。
「import」を使用することで自作したモジュールもimportを使って読み込むことで、そのモジュールで定義した関数やクラスを他のプログラムでも使うことができる。

if __name__ == ‘__main__’:の意味

とりあえず以下のプログラムを作成

test.py
def test():
    print('Hello World!')

if __name__ == '__main__':
    test()

print('モジュール名:{}'.format(__name__))  #実行したモジュール名を表示する
出力
Hello World!

なぜ実行されるのか

__name__」という変数は宣言してないのになぜ実行される?

__name__はPythonプリンタでPythonスクリプトを読み込むと自動的に作成される。

Pythonスクリプトを直接実行した時には、そのスクリプトファイルは「__main__」という名前のモジュールとして認識される
そのため、スクリプトファイルを直接実行すると__name__変数の中に自動で'__main__'という値が代入される

要するに

「if __name__ == '__main__':」の意味は、「直接実行された場合のみ実行し、それ以外の場合は実行しない」

インタプリタで実行してみる
if name == '__main__':はFalseとなって実行されない

>>> import test.py
モジュール名:test

参照サイト

http://programming-study.com/technology/python-if-main/