if __name__ == “__main__” 

実行例は「stupa.sarnath」の「Google Colabotry」環境に保存してある

1.if __name__ == “__main__”の意味

 アンダースコアに惑わされずに読めば
   「__name__に格納されている値が'__main__'という文字列であれば
     この条件文以降の処理を実行するという単なるif文

 Pythonのサンプルコードにおまじないのように書かれている
   このif文の意味と使い方を説明する

2.使用例

# mymodule.py
print("mymoduleが起動されました")

# thenの部分は直接起動時、elseの部分はimportされた時
if __name__ == "__main__":
    print("このコードはmymoduleを直接実行したときに実行されます",__name__)
else:
  print("このコードはmymoduleをimportしたときに実行されます",__name__)

 上記コードの説明
   import mymoduleの場合
     トップレベルの部分が処理され以下の表示がされる
       ”mymoduleが起動されました”
     if __name__ == “__main__”:
       __name__ は「main」なのでelse処理が実行される
       ”このコードはmymoduleをimportしたときに実行されます”

   mymoduleを直接実行(mymodule.pyの起動)した場合
     トップレベルの部分が処理され以下の表示がされる
       ”mymoduleが起動されました”
     if __name__ == “__main__”:の
       __name__ は「__main__」なのでthen処理が実行される
         ”このコードはmymoduleを直接実行したときに実行されます”

# calculator.py
def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

if __name__ == "__main__":
    print(add(3, 4))
    print(subtract(10, 5))

 上記コードの説明
   直接実行すると、足し算と引き算の結果が出力される

 上記コードの実行結果
   mymoduleが起動されました
   このコードはmymoduleを直接実行したときに実行されます
    *** __main__
   7
   5

# calculator.py
def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

if __name__ == "__main__":
    print(add(3, 4))
    print(subtract(10, 5))

import main
print(add(3,4))

上記コードの説明
   importすると、足し算と引き算の結果が出力される

上記コードの実行結果
   ****** import 処理
   mymoduleが起動されました
   このコードはmymoduleをimportしたときに実行されます
   +++ main
   *******
   import 処理
   7
   7