ArgsとKwargsの使い方!どうやって使うの?




こんにちは。Kota(@k_ta0306)です。 Pythonのコードを読んでいると*argsや**kwargsに遭遇することがよくあります。これって何か知っていますか? 初心者-中級者だとあまり使わなくても、それなりにPythonのコードがかけてしまうと思います。 *argsや**kwargsという変数は、一般的に任意の関数パラメータとして扱われます。これは、関数に対して、動的なパラメータの扱いを可能にするのです。 普段あまり意識しないところで、動的な動きをする関数を作成できるようになると書けるスクリプトの幅が広がるでしょう。 それではこの2つのタイプのパラメータについて説明してみます。
上記のような関数を作成したとします。 すると、関数が取れる引数は、
(‘kota’, 24)というように、2つの引数を取る必要があります。 (‘kota’)だけとか、(24)だけとかの引数は取れない関数となるわけです。 もし、nameなしでも良いとする場合は以下のようにすればできます。
今までの場合は引数が単純であったのであまり問題はなかったですが、引数が多くなるとどうでしょうか。必要な分だけ引数を指定する必要があり面倒です。 このとき*argsを使います。
*argsは位置が指定された変数の代わりに用いることができます。なので、以下のようなことはできません。
これを実現させるために必要なのが、*kwargsです。 以下のような実装が可能になります。
このように関数の引数をとる際に、多くの引数を簡略化して書くことができるのが*argsと**kwargsになります。