__name__属性 (初めてのPython 18.3節)

よく理解していなかったコードの最後の部分にある
if __name__ == '__main__':
という一行について。


まず、__name__ 属性はあらゆるモジュールが必ず持つ属性であり、
そのモジュールがインポートで利用されるか、スタンドアロンプログラムとして実行されるかを自己診断するために利用される。

  • モジュールファイルがプログラムのトップレベルファイルとして機能する場合には、プログラム起動時に値として __main__ が指定される。
  • モジュールファイルがインポートされる場合は、値として、モジュール名が指定される。

つまり、モジュールファイルをインポートして使うことと、スタンドアロンプログラムファイルとして使うことが同時にできるようにするために、この一文を最後に書いておく。

初めてのPython 第2版

初めてのPython 第2版