__name__ == '__main__' を使う場合

from samplepackage import yourmodule

を実行したとき、yourmodule 内のコードはすべて実行される。 例えば samplepackage/yourmodule.py が次のコードで構成されているとする。

def sample_func():
  print('hello from sample func.')

sample_func()

import した時点で sample_func() も一緒に実行される。

  • import した時点では sample_func() を呼びたくない
  • python samplepackage/yourmodule.py を実行した場合は sample_func() を呼ぶ

という場合は samplepackage/yourmodule.py は次の通りとするのが妥当である。

def sample_func():
  print('hello from sample func.')

if __name__ == '__main__':
  sample_func()

参考記事: https://stackoverflow.com/a/20158605