__main__について
mainについて
if __name__ = '__main__': foo()
このif文はなんなのかというと、実行した時に関係がある。
nameとは
__name__
は実行中のスクリプトのモジュールの名前である。
この値を参照することで、ファイルがコマンドラインから実行されたのか、import文でインポートされたのかがわかる。
コマンドラインからPythonインタプリタを起動すると、指定されたファイルは、__main__
という名前のモジュールとしてPythonに読み込まれる。
どう使う?
例えば、user.py
はmain.py
からimportして使用するモジュールだけれども、user.py
単体でもテストしたい。
そんな時に、user.py
にif __name__ = '__main__':
を加えることで、テスト項目を追加することができる。
テスト項目を追加した後は、トップレベルでuser.py
を実行すればテストが実行できるというわけだ。