29.4. __main__
— トップレベルのスクリプト環境¶
'__main__'
はトップレベルのコードが実行されるスコープの名前です。モジュールが、標準入力から読み込まれたとき、スクリプトとして実行されたとき、あるいはインタラクティブプロンプトのとき、__name__ には '__main__'
が設定されます。
モジュールは、自身の __name__
をチェックすることでメインスコープで実行されているかどうかを確認できます。これはモジュールがスクリプトとして、あるいはインポートでなく python -m
で起動されたときに実行するコードの条件として使用できる一般的なイディオムです:
if __name__ == "__main__":
# execute only if run as a script
main()
パッケージについては、__main__.py
モジュールを用意することで同じ効果を得られます。__main__.py
にモジュールが -m
オプションで呼びだされたときに実行したいコードを書くことができます。