Python コードにおける if __name__ == "__main__":
の解説
if __name__ == "__main__":
は、Python でよく見かける条件分岐構文です。一見複雑そうに見えますが、実はとてもシンプルな役割を担っています。
この構文の役割
- スクリプトとして直接実行された場合のみ、その後に続くコードを実行する
- モジュールとしてインポートされた場合は、その後に続くコードを実行しない
もう少し詳しく説明します
Python ファイルを実行する場合、2 つの方法があります。
スクリプトとして直接実行
python ファイル名.py
のようにコマンドラインから実行- ダブルクリックなどでファイルを開く
モジュールとしてインポート
import ファイル名
のように他の Python ファイルから読み込む
if __name__ == "__main__":
は、この実行方法を区別するために使用されます。
- スクリプトとして直接実行された場合、
__name__
は"__main__"
に設定されます。 - モジュールとしてインポートされた場合、
__name__
はインポートされたモジュールの名前になります。
つまり、この構文は __name__
が "__main__"
であるかどうかを確認し、スクリプトとして直接実行された場合のみ、その後に続くコードを実行するのです。
例
Python
def main():
# この関数は、スクリプトとして直接実行された場合のみ実行されます
print("スクリプトとして実行されました")
if __name__ == "__main__":
main()
この例では、main()
関数は if __name__ == "__main__":
内に書かれているため、スクリプトとして直接実行された場合のみ出力されます。一方、モジュールとしてインポートされた場合は、この関数は実行されません。
まとめ
if __name__ == "__main__":
は、スクリプトとして直接実行された場合のみ、その後に続くコードを実行するための構文です。- モジュールとしてインポートされた場合は、この構文内にあるコードは実行されません。
- この構文は、テストコードを記述したり、モジュールをコマンドラインツールとして利用できるようにしたりする際に役立ちます。
参考情報