Pythonでは、if __name__ == '__main__':
という構文を使って、スクリプトが直接実行されたときだけ特定のコードを実行することができます。この構文は、モジュールのテスト時や、モジュールを直接実行したときとモジュールをインポートしたときで動作を変えたい場合に便利です。
また、sys.argv
を使うことで、コマンドラインから引数を受け取ることができます。以下に一例を示します。
import sys
def say_args(kind, data_list):
print("kind:", kind, " data:", data_list)
if __name__ == '__main__':
args = sys.argv[1:]
assert args
kind = args[0].lower()
data_list = [x.lower() for x in args[1:]]
say_args(kind, data_list)
このコードでは、if __name__ == '__main__':
の下にあるコードが、スクリプトが直接実行されたときだけ実行されます。そして、sys.argv[1:]
を使ってコマンドラインから引数を取得し、それらを say_args
関数に渡しています。
ただし、if __name__ == '__main__':
の下に直接コードを書くと、そのコードがグローバルスコープになり、そこで定義された変数がすべてグローバル変数になるという問題があります。これを避けるためには、if __name__ == '__main__':
の下のコードを関数でくるむことが推奨されています。
以上が、Pythonの if __name__ == '__main__':
とコマンドライン引数についての基本的な説明です。これらの概念を理解することで、Pythonのスクリプトやモジュールをより効果的に利用することができます。