pythonでおまじないのように使っていたif __name__ == '__main__':の意味を調べてみた
こんにちは。りゅうねんです。
pythonでコーディングを行う際に、おまじないのように書いていた
if __name__ == '__main__':
なんですがこれがどういう意味かふと気になったので、調べてみました。
調べてみてわかったこととして
たとえば、hoge.pyの場合は、
直接実行したら_name__には'__main__'が代入されるので、if文がTrueになり、mainが実行されます。
hogeで記述した関数を別のhoge2.pyでインポートした場合は、
__name__にはhogeが代入されるので、if文がFalseになるためmainが実行されません。
これの利用例としては、ライブラリhoge.pyを自作する際に、テストコードをメインで記述しておけばそこの中でテストができます。
hoge2.pyで実際にライブラリを使用する際は、インポートされたhoge.pyのmainは実行されないのでライブラリとして実行されます。
コーディング中にライブラリとして利用する予定がなくても、基本的はこのように記述しておくといいと思います。
関数などを再利用するときにも便利なのでぜひ使ってみてください!
それでは〜