データ構造・モジュール・標準ライブラリPartII・仮想環境(5,6,11,12章)
モジュールmymodule.pyの中に if __name__ == '__main__': という条件分岐でのみ実行される処理を記述した。このモジュールを別のスクリプトからimport mymoduleとして読み込んだ場合、その処理はどうなるか。
- Aimportされた際にも必ず実行される。
- Bimportにエラーが発生する。
- CPython起動時に自動的に実行される。
- ✓importされた際には実行されない。
解説
モジュールがスクリプトとして直接実行されたときは__name__に'__main__'が設定されるが、importされた場合は__name__にモジュール名が設定されるため、if __name__ == '__main__':配下の処理は実行されない。
根拠Pythonチュートリアル 6.1.1 モジュールをスクリプトとして実行する