Pythonでは、if __name__ == '__main__':
という構文がよく使われます。この構文は、Pythonファイルが直接実行された場合にのみ特定のコードを実行するために使用されます。
if __name__ == '__main__'
とは何か
Pythonでは、クラスや関数などをまとめたモジュールを作成できます。モジュールをインポートすると、そのモジュールの機能を利用できます。また、モジュールもPythonプログラムなので、モジュールを直接実行することもできます。
しかし、モジュールをテストする時など、「モジュールを直接実行した時」と「モジュールをインポートした時」で動作を変えたい場合があります。このような場合にif __name__ == '__main__'
の構文を使います。
if __name__ == '__main__'
の使い方
if __name__ == '__main__'
の中には、「モジュールを直接実行した時だけ、実行したいコード」を記述します。
# モジュールのコード。 クラスや関数など。
if __name__ == '__main__':
# モジュールを直接実行した時だけ、実行したいコード
例えば、以下のコードをmy_module.py
という名前で保存します。
print(__name__)
def greeting(name):
print('Hello', name)
if __name__ == '__main__':
greeting('Taro')
このコードを直接実行すると、__name__
変数の中身は'__main__'
になり、if __name__ == '__main__':
の部分が実行されます。
しかし、他のPythonファイルからこのモジュールをインポートすると、__name__
変数の中身は'my_module'
になり、if __name__ == '__main__':
の部分は実行されません。
まとめ
Pythonのif __name__ == '__main__'
構文は、Pythonファイルが直接実行された場合にのみ特定のコードを実行するための便利な機能です。モジュールのテストやデバッグ時に特に役立ちます。