\

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のスクリプトやモジュールをより効果的に利用することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です