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 オプションで呼びだされたときに実行したいコードを書くことができます。