if __name__ == '__main__':とは
スクリプト
chainerを少しいじり始めてから気になったことがあって、
ファイルの一番下に
if __name__ == '__main__':
main()
というのがあって
なんでこんな風に関数を呼び出して実装しているのかなと思ったら、
Pythonに於いて
コマンドプラインからPythonスクリプトファイルを選択してPythonインタプリタを起動して実行すると、
指定されたファイルは
__main__
というモジュールとして読み込まれる。
実行中のスクリプトファイルのモジュール名は
__name__
という名前の変数に設定されていて、これを参照した時にファイルがコマンドラインから実行されたのか、それともimport文から読み込まれて実行されたのかの判断ができるようになっている。
だからトップレベルファイルとして選択された時のみ呼び出されるから他のモジュールから呼び出された時に実行されない。
結論
ファイル内のクラスやら関数やらを使い回すのに便利になる。
追記
ファイル内のmoduleがどうなっているかの確認で
print(vars())
を実行したら
..., '__name__': '__main__',......,
'np': <module 'numpy' from '/Users/~~~/numpy/__init__.py'>,...
みたいに色々と見えました。
Author And Source
この問題について(if __name__ == '__main__':とは), 我々は、より多くの情報をここで見つけました https://qiita.com/yoshiyoshi0505/items/00bf1c7da207a77d8a45著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .