Python | if __name__ == ‘__main__’:節の意味

Python

Pythonのif __name__ == ‘__main__’:節の意味を説明する。何も表示しないGUIを例に説明する。

#!/usr/bin/env python3

import sys
from PyQt6.QtWidgets import QApplication, QWidget


class GuiWindow(QWidget):
    pass


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = GuiWindow()
    window.show()
    sys.exit(app.exec())

if __name__ == ‘__main__’:

if __name__ == ‘__main__’:内のコードはそのPythonファイルが他のファイルからimportされた場合は実行されない。その他の場合、例えばコマンドラインから実行された場合やexeファイル化されてexeファイルとしてとして実行された場合は実行される。

app = QApplication(sys.argv)

これはQApplicationのインスタンスを生成するコードである。QApplicationはコマンドラインの情報を受け取ることができsys.argvはコマンドライン引数である。この引数の渡し方はテンプレートとして覚えれば良い。

sys.exit(app.exec())

わかりづらいので分解して考える。

    result = app.exec()
    sys.exit(result)

1行目:app(QApplicationのインスタンス)のイベントループを発生させGUIを操作することができるようになる。GUIを閉じたり破棄されると返り値が返る。正常終了の場合は整数0を返す。それ以外は0以外を返す。

2行目:Pythonを終了させる関数である。GUIが正常に終了したかどうかを引数として受け取る。

まとめ

if name == ‘main‘:節の意味を説明した。

コメント