Pythonで見かけた「if _name_ == '_main__':」について意味がわからなかったので
自分なりに調べたことをメモがてら以下にまとめる。
こちらのサイトを参考にさせていただいた。
https://blog.pyq.jp/entry/Python_kaiketsu_180207
ざっくり言うと、このPythonファイルが「"Pythonファイル名".py」というふうに実行されているかを判断するらしい。
まず、「if _name__ == '_main__':」のないプログラムを考えてみる。
ーーーーーーーーーーーーーーーーーーーー
def main():
print("Hello")
main()
ーーーーーーーーーーーーーーーーーーーー
このようなhello.pyというプログラムがあった場合
$Python hello.pyとすることで「Hello」と表示することができるが、
>>>import hello.pyとしても同様に「Hello」と表示されてしまう。
そこでプログラムを以下のようにすることで、importした際のmain関数の実行を防ぐことができ
$Python hello.pyとした場合にのみ、main関数が実行される
ーーーーーーーーーーーーーーーーーーーー
def main():
print("Hello")
if _name_ == '__main_':
main()
ーーーーーーーーーーーーーーーーーーーー
Pythonには__name__という特殊な変数があり、$Python hello.pyとすることで自動的に_name__ = '_main__'となるので
プログラムがPython hello.pyとして実行されたと判断することができるらしい。