LoginSignup
54
54

More than 5 years have passed since last update.

【pythonの基礎の基礎の基礎】なぜ__name__ == "__main__"をするか

Last updated at Posted at 2015-05-11
sample.py
import ~~
def hoge
    #~~
if __name__ = "__main__": 
    #~~

こういうコードをみるけど、__name__ってなんなのっていう話。

pythonインタープリターがコードを実行する前に定義する特別な変数がいくつかあり、そのうちの一つが__name__変数である。そして、読んでいるモジュールすなわちソースコードがメインプログラムだった場合、pythonは__name__変数に値"__main__"をセットする。もし、ファイルが他のモジュールからインポートされている場合は、__name__には、そのモジュール名が入る。

つまり、コンソールで、

python sample.py

とかしてるときは、メインプログラムとして走らせてるsample.py内では__name__変数に__main__がセットされているということ。

上のsample.pyでいうと、こういう特殊な最初に定義される変数をセットしてから、次にimport宣言たちを実行して、その次にdefブロックを評価してhogehoeっていうfunction objectを参照する変数をつくる。それからif文を見に行き、その中の処理を実行する。
この手順によって、定義した関数とかインポートしたモジュールをもってしてif内の処理を実行できる。

これを持つ意味は、他のモジュールからインポートされた際には実行されたくないけど、メインプログラムとして走らせたときには行い処理をかけるね。C++とかjavaのmain関数の考えかたと一緒ってことかな。

なるほど。

54
54
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
54