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